Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8464[/thread]

cSubroutinenaufruf innerhalb pattern matching s///



<< >> 4 Einträge, 1 Seite
alex74
 2006-11-02 15:33
#71308 #71308
User since
2006-09-11
6 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe folgendes Problem:
Ich möchte eine Textdatei durchgehen, und dabei bestimmte Ersetzungen vornehmen.
z.B. wenn <DATUM> gefunden wird, so soll dieser Platzhalter mit dem Rückgabewert der Subroutine &datum ersetzt werden, wenn <SPRING> gefunden wird, so soll mit dem Rückgabewert von &spring ersetzt werden etc.

Ich habe mir das wie folgt vorgestellt:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
use POSIX;

while (<INPUT>) {
   $_ =~ s/<DATUM>/(?{ \&datum })/g;
}

sub datum {
   my $jetzt = strftime ("%a %b %e %H:%M:%S%Y", gmtime);
   return $jetzt;
}


Dies funktioniert aber nicht. Wie könnte die Lösung aussehen?

Danke & Grüsse
Alex
renee
 2006-11-02 15:43
#71309 #71309
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dir fehlt der e-modifier:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use POSIX;

while (<DATA>) {
$_ =~ s/<DATUM>/datum()/eg;
print
}

sub datum {
my $jetzt = strftime ("%a %b %e %H:%M:%S%Y", gmtime);
return $jetzt;
}

__DATA__
Dies ist ein <DATUM>
kein Datum
<DATUM>
Test
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
alex74
 2006-11-02 15:52
#71310 #71310
User since
2006-09-11
6 Artikel
BenutzerIn
[default_avatar]
Super, vielen Dank für die schnelle Hilfe!

Grüsse
Alex
Crian
 2006-11-03 14:22
#71311 #71311
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Beim Datum fragt sich, ob du das nicht einmal ermitteln und dann eintragen willst.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 4 Einträge, 1 Seite



View all threads created 2006-11-02 15:33.