Avatar billede kelo Nybegynder
17. maj 2001 - 14:58 Der er 9 kommentarer og
2 løsninger

$_ forklaring tak!

Generel forklaring af denne + hvordan jeg får den over i en funktion.

altså:

sub bla

$hej = $_[0];
print $hej;

end sub

bla();

hvordan får jeg data i hej?
Avatar billede webwally Nybegynder
17. maj 2001 - 15:06 #1
Du får data i hej ved at skrive:

$hej = data
Avatar billede kelo Nybegynder
17. maj 2001 - 15:14 #2
Ehhh det ved jeg godt!

Pointen er hvordan jeg får overført værdier til


$hej i en sub

via

$_ 

Avatar billede fehaar Nybegynder
17. maj 2001 - 15:23 #3
Du skal bruge @_ i stedet for $_ i en sub. F.eks. :

sub bla
($hej) = @_;
print $hej;
end sub

bla(\"Hej!\\n\");
Avatar billede thomasledet Nybegynder
17. maj 2001 - 18:09 #4
@_ er et array....

har du kun et parameter, du ønsker at overføre, benyt da $_...

sub dinfunktion
{
my $hej=$_;
print $hej;
}

du KAN også gøre det ved hjælp af @_, hvis du eventuelt vil have flere parametre med

sub dinfunktion
{
my ($hej, $davs)=@_; # hvis der er 2 parametre
print \"$hej $davs\";
}

eller sådan her

sub dinfunktion
{
my $hej=@_[0];
my $davs=@_[1];
print \"$hej $davs\";
}
Avatar billede thomasledet Nybegynder
17. maj 2001 - 18:19 #5
jeg vil klart anbefale dig at bruge lokale variabler, da det gør hele din programmering noget lettere...
Avatar billede fehaar Nybegynder
18. maj 2001 - 12:07 #6
Det rare (syntes jeg) ved at benytte @_ altid er at du ikke har flere forskellige måder at overføre variable på. Men som alt andet i Perl er det jo at hvis det virker er det god Perl. :)

I øvrigt er det helt korrekt at man bør benytte lokale variable i funktioner for at beskytte sit scope.
Avatar billede thomasledet Nybegynder
19. maj 2001 - 13:59 #7
og som altid med perl, så er der selvfølgelig også en hel tredie måde at gøre det på :)

-->

sub dinfunktion
{
shift() if ref($_[0]);
my $hej=shift;
print \"$hej\";
}

<--
Avatar billede thomasledet Nybegynder
19. maj 2001 - 14:07 #8
kelo>og lige et praktisk eksempel på dit spørgsmål:

-->

#!/usr/bin/perl

printf(\"%s\\n\", dinfunktion(\"Det vildeste!\"));

sub dinfunktion
{
my $hej = $_[0];
$hej=reverse($hej);
return $hej;
}
Avatar billede thomasledet Nybegynder
20. maj 2001 - 18:12 #9
kelo>kan du bruge svarene? så bør du nok lukke spørgsmålet...
Avatar billede kelo Nybegynder
21. maj 2001 - 08:04 #10
Jeps jeg kunne godt bruge svarende, men jeg har desværre ikke siddet ved computeren hele weekenden. Takker for de mange muligheder
Avatar billede thomasledet Nybegynder
21. maj 2001 - 10:09 #11
det er det gode OG dårlige ved perl... der er så mange måder at gøre tingene på... og det er selvfølgelig en styrke... men også en svaghed, da man nemt kan rode sig ud i en masse rod...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester