Thread regex funktioniert einmal, beim zweiten Mal nicht (3 answers)
Opened by McSvenster at 2009-01-09 21:20

McSvenster
 2009-01-09 21:20
#117808 #117808
User since
2008-11-19
12 Artikel
BenutzerIn
[default_avatar]
Liebe Kollegen,

ich möchte Euch mal wieder um Hilfe bitten. Zur Zeit zweifele ich an meinem Verstand, da eine regex bei einer Variablen funktioniert, wie erwartet, bei einer anderen aber nicht.
Mein Skript habe ich hier mal nur auf die Funktion zusammengekürzt:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
my $ParamZahl = @ARGV;
if ($ParamZahl == 2 && @ARGV[0] =~ /^\D{3}$/ && @ARGV[1] =~ /^\d{4}$/ ) {
  $Biblio=@ARGV[0];
  $Jahr=@ARGV[1]; 
  print "$Biblio im Jahr $Jahr \n";
  }
  else {
    print "Die Parameter sind falsch eingegeben worden.\n";
        print "Bitte die Bibliothek angeben (BBB): ";
        my $Biblio = <STDIN>;
        while ($Biblio !~ /^\D{3}$/ ){
          print "Bitte die Bibliothek mit drei Buchstaben eingeben (BBB) : ";
          $Biblio = <STDIN>;
  }
} 


Ich möchte dem Perlscript bei Aufruf zwei Parameter übergeben und diese (erstmal grob) überprüfen. Dabei darf der erste Parameter nur genau aus drei Buchstaben bestehen, der zweite genau aus vier Ziffern.
Das funktioniert bei der if- Abfrage auch. In der while- Schleife aber akzeptiert das Skript nun auch zwei Buchstaben (drei gehen auch, einer wird abgewiesen und ab vier ebenfalls die Schleife wie gewünscht durchlaufen).

Hat jemand einen Tipp für mich?

Grüße
Mc

View full thread regex funktioniert einmal, beim zweiten Mal nicht