Schrift
[thread]7690[/thread]

Ersetzen von Skalarnamen: Ersetzen von Skalarnamen



<< >> 4 Einträge, 1 Seite
Gast Gast
 2006-02-09 17:17
#62796 #62796
Ich möchte Skalarnamen ersetzen. In folgendem Snippet z.B.
- pff
- pff_sum

$line = "irgendwas \$pff \$pff_sum irgendwas ";
$skalar = "\$pff";
$new_name = "ABCDEFG";
if ($line =~ s/$skalar/\$$new_name/g) { print "$line" }

Es soll als letztlich folgendes gelten:
$line = "irgendwas \$ABCDEFG \$pff_sum irgendwas "

Ersetzt wird aber nichts...

Warum (das $ in s///?)? Gibt es eine Lösung?
Taulmarill
 2006-02-09 17:50
#62797 #62797
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
anstatt mit scalarnamen herumzuspielen, solltest du deine daten in einem hash ablegen. auf die hashwerte kannst du dann über den key zugreifen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
jmb
 2006-02-09 18:28
#62798 #62798
User since
2006-02-08
30 Artikel
BenutzerIn
[default_avatar]
hi,

du musst single quotes nehmen, in etwas so

Quote
my $line = "irgendwas \$pff \$pff_sum irgendwas ";
my $skalar = '\$pff';
my $new_name = "ABCDEFG";
if ($line =~ s/$skalar\s/\$$new_name/g) { print "$line" }


cheers
jmb
renee
 2006-02-10 00:09
#62799 #62799
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Anstatt mit Single-Quotes rumzuspielen sollte man lieber quotemeta oder \Q ... \E verwenden und @jmb bei Dir wird auch das Leerzeichen ersetzt. So wuerde es gehen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use warnings;

my $line = "irgendwas \$pff \$pff_sum irgendwas ";

my $skalar = "\$pff";
my $new_name = "ABCDEFG";
if ($line =~ s/\Q$skalar\E\b/\$$new_name/g) {
print $line; # Variablen braucht man nicht in double quotes setzen
}
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/
<< >> 4 Einträge, 1 Seite



View all threads created 2006-02-09 17:17.