array in variable schreiben
martin
- cgi
hi,
kann man es irgenwie machen, dass alle elemente aus einem array in eine variable geschreiben werden.
1000 dank für hilfreiche antworten
Halihallo martin
kann man es irgenwie machen, dass alle elemente aus einem array in eine variable geschreiben werden.
Wie meinst du das?
Voraus zwei Tipps und Lektüre:
my $variable = join(',',@array);
my $variable = @array;
perldoc -f join
perldoc -f foreach
perldoc perlreftut
perldoc perlref
Viele Grüsse
Philipp
also, mein perl-prog liest eine datei aus. jetzt wird ein suchwort eingegeben und das suchwort wird mit dem array verglichen.
@inhalt = inhalt der datei;
if(@inhalt =~ /$suchmuster/) {
print "$suchmuster gefunden";
} else {
print "Nichts gefunden";
}
aber ich glaube man kann nur skalare variablen mit einem suchmuster überprüfen, jetzt muss ich entweder das array in eine variable reinschreiben oder das so machen, dass das suchmuster das array überprüft.
Hallo,
@inhalt = inhalt der datei;
if(@inhalt =~ /$suchmuster/) {
print "$suchmuster gefunden";
} else {
print "Nichts gefunden";
}
Zu allererst einmal: Eine Datei komplett einzulesen, ohne daß deren Inhalt weiter gebraucht wird, kann sehr resourcenverschwendend sein. In den meisten Fällen ist es einfahc nicht notwendig, die ganze Datei im Speicher zu halten.
Beispiel:
my $ausgabe = 'nichts gefunden';
while(<IN>)
{
if( /$suchmuster/)
{
$ausgabe = "$suchmuster gefunden";
last;
}
}
close IN;
print $ausgabe;
macht das gleiche, hat allerdings den Vorteil, bei einem Treffer die Datei gar nicht vollständig einlesen zu müssen.
Allerdings könnte es durchaus sein, daß DU wirklich den ganzen Inhalt brauchst, dann könntest Du auch statt der while-Schleife mit einer foreach-Schleife durch das Array durchgehen.
Auch ein Blick auf die Funktion grep könnte Dir weiterhelfen.
Grüße
Klaus
use Mosche;
Allerdings könnte es durchaus sein, daß DU wirklich den ganzen Inhalt brauchst, dann könntest Du auch statt der while-Schleife mit einer foreach-Schleife durch das Array durchgehen.
Es ist auch möglich (aber, wie Klaus gesagt hat, _meist_ nicht sinnvoll), die ganze Datei auf einen Rutsch in einen Skalar einzulesen.
local $/ = undef;
my $variable = <FH>;
use Tschoe qw(Matti);