Astovidatu: Pipe Zeichen und Regex

Hallo miteinander,
mein Problem erklärt sich am besten von alleine:

  
my $file = param('file');  
  
if ($file =~ /\|test\|/) {  
 print "execute command";  
 print $file;  
}  
  
my $file2 = "|test|";  
if ($file2 =~ /\|test\|/) {  
 print "funzt";  
} else { print "nein"; }  

C:\Perl\hackit>perl config.cgi file=|test|
Syntaxfehler.

C:\Perl\perl\hackit>perl config.cgi
funzt

Wie kann das sein?

Gruß, Asto.

  1. Hi,
    müsste es nicht C:\Perl\hackit>perl config.cgi?file=|test| heißen?

    Markus.

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|
    1. müsste es nicht C:\Perl\hackit>perl config.cgi?file=|test| heißen?

      Nein, müsste es nicht.

      Ich werd einfach nicht schlau darauß.
      In der perlre hab ich nichts gefunden bis jetzt...

  2. Hallo Astovidatu,

    C:\Perl\hackit>perl config.cgi file=|test|
    Syntaxfehler.

    Deine Shell interpretiert das | als Shell-Pipe. Mach es so:

    ~> perl config.cgi "file=|test|"

    Grüße,
     CK

    --
    If God had a beard, he'd be a UNIX programmer.
    http://wwwtech.de/
    1. Deine Shell interpretiert das | als Shell-Pipe.

      Hi CK,
      vieln dank, funktioniert nun einwandfrei - wie erwartet :).