/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Replace..
Fra : John Doe


Dato : 10-03-01 19:26

jeg vil udføre en simple funktion i PERL hvor jeg modtager input og ændre
det. Altså jeg har en tekst string
$text = "tester /test4/ gif fil";
og min subrutine skal lave /testing/ om til en tilsvarende gif fil. Altså:

$gif = "<img src=\"$GRAPHICS_PATH\" . \"$1.gif\" width=16 height=12
align=absmiddle>";

$text =~ s/\/(\w+\d+)\//$mimik/g;

Det kunne sikkers gøres på en smartere måde med %hash men der er så mange
gif billeder at det er svært at lave en tabel.. jeg har vælgt at skrive
(\w+\d+) , for filnavnet kan indeholde både bogstaver og tal. Altså f.eks
bold1.gif ...
Hvad er det jeg gør forkert i mit eksampel?



 
 
Lars Balker Rasmusse~ (10-03-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 10-03-01 20:27

"John Doe" <fatih@forum.dk> writes:
> jeg vil udføre en simple funktion i PERL hvor jeg modtager input og ændre
> det. Altså jeg har en tekst string
> $text = "tester /test4/ gif fil";
> og min subrutine skal lave /testing/ om til en tilsvarende gif fil. Altså:
>
> $gif = "<img src=\"$GRAPHICS_PATH\" . \"$1.gif\" width=16 height=12
> align=absmiddle>";
>
> $text =~ s/\/(\w+\d+)\//$mimik/g;
>
> Det kunne sikkers gøres på en smartere måde med %hash men der er så mange
> gif billeder at det er svært at lave en tabel.. jeg har vælgt at skrive
> (\w+\d+) , for filnavnet kan indeholde både bogstaver og tal. Altså f.eks
> bold1.gif ...
> Hvad er det jeg gør forkert i mit eksampel?

Ovenstående var ustyrligt svært at forstå fordi du bruger forskellige
navne til de samme ting, test4/testing, $gif/$mimik, etc... Mere
forsigtig, tak.

Jeg TROR du mener at du vil have:

$GRAPHICS_PATH = "/foo/";
$text = "tester /test4/ gif fil";
$gif_head = qq{<img src="$GRAPHICS_PATH};
$gif_tail = qq{.gif" width=16 height=12 align=absmiddle>};

$text =~ s,/([\w\d]+)/,$gif_head$1$gif_tail,g;

Altså split $gif over i to, så du kan indlejre $1 når den er
defineret, ikke før (som du gør i dit eksempel). Derudover bruger jeg
her qq{} og s,,, for at slippe for back-slashes. Det giver meget mere
læsbar kode.
--
Lars Balker Rasmussen "Woo hoo!?"

Ask Bjoern Hansen (12-03-2001)
Kommentar
Fra : Ask Bjoern Hansen


Dato : 12-03-01 10:35

"John Doe" <fatih@forum.dk> writes:

> Hvad er det jeg gør forkert i mit eksampel?

Du proever at genopfinde et templating system. Ved sidste taelling
havde cirka 5622701 andre programmoerer lavet den slags
systemer. Nogle af de bedste kan hentes fra CPAN, for eksempel
Text::Template, HTML::Embperl og HTML::Mason.

Kig paa http://search.cpan.org/

- ask

--
ask bjoern hansen - http://ask.netcetera.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408915
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste