|
|||||||||||||||||||||||||||
On Thu, 25 May 2000, Claus Ekstrøm wrote:
> Hejsa.
>
> Jeg er forholdsvis nybegynder i Perl, og har et problem, som jeg ikke umiddelbart kan se hvordan kan løses.
> Jeg har en række datasæt som eksterne ASCII-filer på følgende form:
>
> id var1 var2 var3
> 1 10 20 30
> 2 20 10 20
> 3 20 03 10
> ...
>
> Der er ikke nødvendigvis det samme antal variable i hver fil, og de har ikke nødvendigvis samme navne. Jeg
> er interesseret i om det er muligt på en eller anden måde at benytte og referere til de variabel-navne, der
> indgår i en fil. I ovennævnte ville det fx. være rart, hvis man kunne skrive:
>
> $logvar1 = log($var1)
>
> Er der nogen nem måde at gøre det på. Det er nok tvivlsomt om man kan
> referere direkte varibelnavnene, men det kunne være man kunne gøre det
> vha. en eller anden form for objekt. Er ovenstående forståligt, og
> hvis ja: nogen forslag?
#!/usr/bin/perl
$header=<DATA>;
@keys=split(/\s+/,$header);
while(<DATA>) {
$line++;
@values=split(/\s+/,$_);
@sslug@sslug@values;
}
for($line=1; $line<4;$line++) {
for (keys %{$table{$line}}) {
print "$line $_ $table{$line}{$_}\n";
}
}
__DATA__
id var1 var2 var3
1 10 20 30
2 20 10 20
3 20 03 10
Hvis du hellere vil bruge en fil end <DATA>, så bruger du blot filens
filehandle istedet.
/Ole
|
||||||||||||||
|
||||||||||||||