User since
2003-08-04
14371
Artikel
ModeratorIn
Sind die Einträge (AA - EE) irgendwie besonders getrennt? Ist da immer eine Leerzeile dazwischen?
#!/usr/bin/perl
use strict;
use warnings;
my $file = '/path/to/file';
open my $fh,"<",$file or die $!;
local $/ = "\nAA";
while(my $entry = <$fh>){
my @lines = split /\n/,$entry;
if($lines[0] =~ /Mercedes/){
print $_,"\n" for @lines[3,4];
}
}
close $fh;
User since
2006-11-23
23
Artikel
BenutzerIn
die einträge sind durch "..." getrennt.
ich versuch mein ziel nochmal besser zu beschreiben.:
ich möchte in einem eintrag in bestimmten zeilen ein wort suchen und dann aber andere zeilen mir ausgeben lasse.
z.b. suche nach Mercedes in Zeilen AA, CC und gib BB, DD, EE aus.
User since
2006-11-23
23
Artikel
BenutzerIn
wow, auf Data::Dumper; wär ich im leben nicht gekommen. vielen dank! hat mir sehr geholfen!
User since
2003-08-04
14371
Artikel
ModeratorIn
Data::Dumper ist nur für die Ausgabe der Datenstruktur da...
User since
2006-11-23
23
Artikel
BenutzerIn
wie kann ich es denn schaffen ein suchwort nicht nur in einer bestimmten zeile zu suchen, sondern optional über den ganzen eintrag? ich möchte aber gerne bei dem vorgeschlagenem code von renne bleiben und den ausbauen.\n\n
<!--EDIT|kabazza|1168785024-->
User since
2006-11-23
23
Artikel
BenutzerIn
eine unelegante aber funtionierende sache ist bei
my @aacc = grep{/^(?:AA|CC)/}@lines;
my @temp = grep{/^(?:BB|DD|EE)/}@lines;
einfach AA, CC, BB, leer zu setzen. da kommen aber endlose warnungen.
wie geht es besser? hat jemand eine idee?
User since
2003-08-04
14371
Artikel
ModeratorIn
Angenommen, in
$flag ist mit
0 gespeichert wenn nur in den bestimmten Zeilen gesucht werden soll, mit
1 wenn im gesamten Eintrag gesucht werden soll:
my @aacc = ($flag == 0) ? grep{/^(?:AA|CC)/}@lines : @lines;
my @temp = grep{/^(?:BB|DD|EE)/}@lines;
User since
2006-11-23
23
Artikel
BenutzerIn
und wieder schaffte es der unglaubliche renee ein problem in luft aufzulösen...
User since
2006-11-23
23
Artikel
BenutzerIn
ich hab mich jetzt mal mit Data::Dumper etwas beschäftigt. ich konnte aber nichts finden wie ich die ausgabe nicht zeilenweise, sonder spaltenweise (zum vergleich) verändern kann.
weiß da jemand was drüber oder hat eine idee?
meine ausgabe sieht so aus:
$VAR1 = [
'AA dummytext',
'BB dummytext',
'CC dummytext',
];
$VAR2 = [
.......