/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
@newarray = sort @array
Fra : Henrik Boegh


Dato : 26-08-01 08:18

Jeg bruger i nedenstående script '@list = sort @lines' - men af en eller
anden grund som kommer der ikke noget i @lines.
Jeg har kigget på eksempler hvor samme metode bliver brugt, men mit virker
af en eller anden grund ikke.
Er der en der har et bud på hvad der går galt for mig?

#!/usr/bin/perl

open(DF, 'data');
@lines = <DF>;
close(DF);

@list = sort @lines;

my $all = @list;
my $last = $list[0];
my $speccount = 0;
my $curc = 1;
my $domco = 0;
print "xxx @list[1]\n";
while ($curc < 10) {
$curr = $list[$ax];
if ($last == $curr) {
$domco++;
print "$domco - $curc - $all - $curr - $last\n";
} else {
@result=$domco.":::".$last;
$domco=0;
}
$last = $curr;
$curc++;
}
@end = reverse sort @result;
foreach (@end) {
$_;
}




--
H e n r i k B o e g h ^ http://henrik.boegh.net/
*** DON'T remove _nospam_ uppon reply by email ***
"Ever stopped thinking, and forget to start again?"
- |Hobbez| på #partyline.dk


 
 
Kåre Nejmann (26-08-2001)
Kommentar
Fra : Kåre Nejmann


Dato : 26-08-01 09:54

Henrik Boegh <h_nospam_@boegh.net> wrote:

>Jeg bruger i nedenstående script '@list = sort @lines' - men af en eller
>anden grund som kommer der ikke noget i @lines.
>Jeg har kigget på eksempler hvor samme metode bliver brugt, men mit virker
>af en eller anden grund ikke.
Jeg har lige lavet en lille test, og der var ikke noget problemer med
at få indhold i @lines. Er du sikker på, at filen data eksisterer?

>#!/usr/bin/perl
prøv at tilføje -wT, så får du lidt "kommentarer" om eventuelle fejl,
når programmet køres.

>open(DF, 'data');
prøv med
open(DF, 'data') or die "fejl ved aabning: $!";
så får du en fejlmelding hvis filen ikke kan åbnes.

>@lines = <DF>;
>close(DF);
>
>@list = sort @lines;
>
>my $all = @list;
>my $last = $list[0];
>my $speccount = 0;
>my $curc = 1;
>my $domco = 0;
>print "xxx @list[1]\n";
>while ($curc < 10) {
> $curr = $list[$ax];
Jeg kan ikke se at $ax er brugt andre steder?

> if ($last == $curr) {
> $domco++;
> print "$domco - $curc - $all - $curr - $last\n";
> } else {
> @result=$domco.":::".$last;
> $domco=0;
> }
> $last = $curr;
> $curc++;
>}
>@end = reverse sort @result;
>foreach (@end) {
> $_;
Skal der ikke stå "print $_;"?
>}

--
..: Kåre Nejmann :.

Peter Makholm (26-08-2001)
Kommentar
Fra : Peter Makholm


Dato : 26-08-01 09:57

Henrik Boegh <h_nospam_@boegh.net> writes:

> @result=$domco.":::".$last;

Mener du dette?

Lige ummidelbart vile jeg tro det skule være

push @result, $domco.":::".$last;

Eventuelt unshift, hvis det får din liste til at vende den rigtige
vej, så du ikke skal vende den med reverse bagefter.

--
Når folk spørger mig, om jeg er nørd, bliver jeg altid ilde til mode
og svarer lidt undskyldende: "Nej, jeg bruger RedHat".
-- Allan Olesen på dk.edb.system.unix

Adam Sjøgren (26-08-2001)
Kommentar
Fra : Adam Sjøgren


Dato : 26-08-01 10:23

On Sun, 26 Aug 2001 09:18:21 +0200, Henrik Boegh wrote:

> Jeg bruger i nedenstående script '@list = sort @lines' - men af en
> eller anden grund som kommer der ikke noget i @lines.

Ovenstående linie propper noget i @list, ikke i @lines.

> open(DF, 'data');
> @lines = <DF>;
> close(DF);

Hér propper du noget i @lines - linierne i 'data'. Er den tom?

> @list = sort @lines;

For mig at se virker din konstruktion:

virgil$ cat yay
#!/usr/bin/perl

use strict;
use warnings;

open(DF, 'data');
my @lines = <DF>;
close(DF);

my @list = sort @lines;

print @list;
virgil$ cat data
data 2
data 1
data 3
virgil$ perl yay
data 1
data 2
data 3
virgil$

?

Mvh.

--
"Redaktionen ser frem til f.eks. Creamys indlevede Adam Sjøgren
fortolkning af 'Hun er stadigvæk en lille pige'" asjo@koldfront.dk

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste