perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




12.02.2012 / 03:43

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragread file, lines
Seitenanfang
Hallo,
Ich habe ein Programm geschrieben, dass in einem Textfile die einzelnen Zeilen in einem stack speichert und wieder ausgibt nur es funktioniert noch nicht!!

#! /usr/bin/perl -w

my @lineList = ( );
my $lines = ($_);
my $lineList = ( );

while (<>)
{
for ($lineList = 0; $lines = $#lineList; $lineList++)
{
push(@lineList, $lines);
}

for ($lineList = 0; $lines =$#lineList; $lineList++)
{
print $lineList[$lines] , "\n";
}

print "-----------------------\n";

foreach $lines (@lineList)
{
print $lineList , "\n";
}

print "-----------------------\n";
}
do
{
$lines = pop(@lineList);
print $lineList , "\n";
} while ($lines);

Ich habe vorher ein ähnliches Programm geschrieben mit den Zahlen von 0 bis 9 und es funktioniert nur hier weiss ich dass die Zahl bei 9 endet beim textfile (es sind mehrere) weiss ich ja nicht wann die letzte Zeile ist.

#! /usr/bin/perl -w
use strict;

my @numb2List = ( );
my $numb2 = ( );

#while (<>)

for my $numb2 (0..9)
{
push(@numb2List, $numb2);
}

for my $numb2 (9..0)
{
print $numb2List[$numb2] , "\n";
}

print "-----------------------\n";

for my $numb2 (@numb2List)
{
print $numb2 , "\n";
}

print "-----------------------\n";

do
{
$numb2 = pop(@numb2List);
print $numb2 , "\n";
} while ($numb2);

Ausgabe in der shell von 0-9:

-----------------------
0
1
2
3
4
5
6
7
8
9
-----------------------
9
8
7
6
5
4
3
2
1
0

Datum: 26.04.2007-12:32

Beitragre: read file, lines
Seitenanfang
Versuch folgendes:
#!/usr/bin/perl
use strict;
use warnings 'all';

while (<>)
{ print }

Eine for-Schleife brauchst du nicht.
In der gezeigten while-Schleife steht in $_ immer die aktuelle Zeile.
Wenn du sie speichern möchtest dann mach eben ein: push(@array, $_)
Warscheinlich brauchst du die \n am Ende der Zeilen nicht, also nach der Schleife noch: chomp(@array)

Dein obiger code könnte also so aussehen:

#!/usr/bin/perl
use strict;
use warnings 'all';

my @lines;
while (<>)
{ push(@lines, $_) }
chomp(@lines);

print "--SNIP--\n";
print "$_\n" foreach @lines;
print "--SNAP--\n";

print "--SNIP--\n";
print "$_\n" foreach reverse @lines;
print "--SNAP--\n";

Sieh dir doch auch mal open() an.

- mike

Datum: 03.05.2007-18:15

-






-
-