Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Zwei Perl Regexps/Zweimal $1

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
aebi



Anmeldungsdatum: 02.12.1999
Beiträge: 41
Wohnort: Kastanienbaum

BeitragVerfasst am: 31. Dez 2002 11:01   Titel: Zwei Perl Regexps/Zweimal $1

Hallo Zusammen

Bei meinen kleinen Perl versuchen bin ich auf ein Problem gestossen, dass ich einfach nicht lösen kann. Es scheint fast zu einfach, aber ich finde einfach keine Lösung.
Ich habe zwei Regexps die Daten aus Variablen rausholen. Beide brauchen $1. Die zweite Regexp trifft nicht immer zu. Falls sie nicht zutrifft, habe ich noch den alten Wert drin, was ich aber nicht möchte...
Kann ich $1 irgenwie zurücksetzen?

Ach ja, seit ich den interpreter mit -w aufrufe beschwert er sich, dass $1 doppelt verwendet ist "Use of uninitialized value in pattern match (m//) at ../cddbtag.pl line 96.". Kann ich ihm vieleicht auch sagen $3 zu nutzen oder so?

Ich habe folgenden Code geschrieben:
#!/usr/bin/perl -w
use strict;
--Schnipp--
foreach my $disc (@discs) {
my ($genre, $cddb_id, $name) = @$disc;
#Get the disc details
my $detail = $cddb->get_disc_details($genre, $cddb_id);

#Get album & artist
$name =~ /(.*) \/ (.*)/; <---------------
$artists{$1}++;
$albums{$2}++;

#Get the year
$detail->{extd} =~ /YEAR: (\d*)/; <---------------
$years{$1}++;
}

Danke viel mals...

Philippe
 
Benutzer-Profile anzeigen Private Nachricht senden

ratte
Gast





BeitragVerfasst am: 31. Dez 2002 14:51   Titel: Re: Zwei Perl Regexps/Zweimal $1

$1 gehoert zu den Sondervariablen, die Perl intern verwendet und duerfen zb. auch nicht vom user veraendert werden.

solche schwierigkeiten, wie du sie hast, umgehe ich mit plausibilitaetspruefungen mit kleinen if-abfragen.

ratte
 

aebi



Anmeldungsdatum: 02.12.1999
Beiträge: 41
Wohnort: Kastanienbaum

BeitragVerfasst am: 06. Jan 2003 16:57   Titel: Re: Zwei Perl Regexps/Zweimal $1

Danke für deine Antwort. Das mit de plausibiltätsprüfungen funktionierte in meinem Fall nicht, da nicht von einer bestimmten Werteart ausgehen konnte.
Ich habe stattdessen eine andere Lösung gefunden; ich packte die beiden Codeteile einfach in geschweifte Klammern. So stören sie sich nicht mehr gegenseitig. Sieht so aus:

#Get album & artist
{$name =~ /(.*) \/ (.*)/;
$artists{$1}++;
$albums{$2}++;}
#Get the year
{$detail->{extd} =~ /YEAR: (\d*)/;
$years{$1}++;}

Trotzdem Danke
Philippe
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy