title image


Smiley Re: Reguläre Ausdrücke und Eval()


Hi,



bereits die Initialisierung Deines Strings ist fehlerhaft ...

perldoc perlre beschreibt auch, was zu tun ist, um den Ersetzungsteil evaluieren zu lassen (es gibt dafür den Modifier /e).



print ist falsch an dieser Stelle. Du hast einen Ausdruck, den Du beim Ersetzen entsprechend umsetzen willst, also sollte return das Mittel Deiner Wahl sein.

Da Perl automatisch das Ergebnis des zuletzt verarbeiteten Ausdrucks zurueckgibt, kannst Du dir sogar das explizite return sparen.



Also korrigieren wir mal:



1 #!/usr/bin/perl

2 use strict;

3 use warnings;

4

5 # im string enthaltene ' _muessen_ maskiert werden

6 #my $text = 'blabla..dskjdkkw [& return $i<0?\'Kleiner 0\':\'Groesser 0\' &] blabla';

7 my $text = 'blabla..dskjdkkw [& $i<0?\'Kleiner 0\':\'Groesser 0\' &] blabla';

8

9 # zaehler

10 my $i = 1;

11

12 # original

13 print $text,$/;

14

15 # ausdruck einfangen und umsetzen; perldoc perlre

16 $text =~s/\[\&(.+)\&\]/eval($1)/ge;

17

18 # und verarbeiter string

19 print $text,$/;

20

21 __END__

Listing: regDate: 2005 Feb 12 14:11:37





perldoc perlretut : http://aspn.activestate.com/ASPN/docs/ActivePerl/lib/Pod/perlretut.html

perldoc perlrequick : http://aspn.activestate.com/ASPN/docs/ActivePerl/lib/Pod/perlrequick.html

perldoc perlre : http://aspn.activestate.com/ASPN/docs/ActivePerl/lib/Pod/perlre.html



Greetz



Linuxer



Wann werden endlich wieder brauchbare Fehlermeldungen Mode?


Alle Angaben ohne Gewähr und auf eine Linux-Umgebung abgestimmt!


Woran liegt es, dass ein Danke oftmals schwerer geschrieben ist als eine bei weitem längere Frage?


http://perldoc.perl.orghttp://search.cpan.orghttp://httpd.apache.orghttp://www.oreillynet.com/linux/cmd/



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: