Thread % Ersetzungen (16 answers)
Opened by mika at 2014-07-11 11:30

Linuxer
 2014-07-12 08:47
#176397 #176397
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
Der Hash %ersetzen enthält eine Zuordnung, welche Prozentsequenz durch welchen String ersetzt werden soll.

Im Ersetzungsteil der Substitution wird dann mit dem gefundenen Match (die runden Klammern fangen den ein und machen ihn als $1 verfügbar) im Hash nachgesehen und durch den zuvor definierten Wert ersetzt (also %i durch ist).

Und der Modifier /e ist hier noch nicht mal notwendig.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>perl
my $a = 'Das %i das %h vom Nikolaus mit 3%% %r';

my %ersetzen = (
i => 'ist',
h => 'Haus',
r => 'Rendite',
'%' => '%',
);

$a =~ s/\%(\%|[\w+])/$ersetzen{$1}/g;

print "$a\n";

^D
Das ist das Haus vom Nikolaus mit 3% Rendite


PS: Wenn eine Sequenz nicht im Hash definiert ist, wird sie durch ein undef (ergibt Leerstring) ersetzt.

Doku:

http://perldoc.perl.org/perldata.html
http://perldoc.perl.org/perlre.html
Last edited: 2014-07-12 10:11:26 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread % Ersetzungen