Schrift
[thread]6765[/thread]

Parameterübergabe in Subroutine



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
roli
 2005-03-06 20:30
#52376 #52376
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe ein Problem mit der Uebergabe eines Parameters in eine Subroutine. Hier Aufruf der Subroutine:
Code: (dl )
1
2
3
chomp(my $to_do = $l_func_array[$i]{'job_template'});
print "Führe -> $to_do <- aus\n";
exec_job($to_do);


Hier die Subroutine:
Code: (dl )
1
2
3
4
5
6
7
8
sub exec_job
{
 buggy(, , "Subroutine \"exec_job\" Anfang");
 print "exec_job\n";

 my $job = $_; #Funktioniert nicht
 #my $job = shift; #So geht's, aber warum?
 print "Übergeben wurde: $job\n";


Hier das Ergebnis:
Code: (dl )
1
2
3
Führe -> ../jobs/shell.sh <- aus
exec_job
Übergeben wurde: 6


Wenn ich die auskommentierte Zeile "my $job = shift;" anstelle von "my $job = $_;" verwende ist alles ok, aber warum?

Danke

Roland


P.S.: Die 6 die an der Stelle von "Übergeben wurde:" ausgegeben wird, ist der Inhalt von $i aus dem Aufruf, gibt's da einen Zusammenhang?
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
pq
 2005-03-06 20:50
#52377 #52377
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Wiki:perldoc perlsub
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
roli
 2005-03-07 17:40
#52378 #52378
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi Meister,

der Link ist spitze, danke. Leider ist die Seite doch ein wenig umfangreich, so das ich die Antwort auf meine Frage leider nicht gefunden habe. Koenntest du das ganze bitte ein wenig konkretisieren?

Danke

Roland
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
Taulmarill
 2005-03-07 19:26
#52379 #52379
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
gibt's doch zu roli, du bist einfach nur zu bequem um dir die ganze seite durchzulesen :)

aber für die ungeduldigen, shift ohne argument shiftet nicht $_ sondern @_. is ja auch logisch, shift ist eine funktion für "echte" arrays, hätte also somit auf einen scalar keinen effekt.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
betterworld
 2005-03-07 19:32
#52380 #52380
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Du willst $_[0] und nicht $_
roli
 2005-03-07 20:21
#52381 #52381
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

das ich zu faul bin zum lesen, wueder ich so nicht sagen, ich versuche das ganze halt nur moeglich'st effektiv zu gestallten ;-} Da ich eh jeden Morgen reboote, waere damit dann soooooo viel von dem schoenen Wissen nutzlos verschwendet.\n\n

<!--EDIT|roli|1110220257-->
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
pq
 2005-03-07 21:57
#52382 #52382
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
naja, roli, solange du dich darauf verlassen kannst, dass es immer
jemanden gibt, der dir es erklärt oder die richtige perldoc-seite weiß, brauchst du natürlich nicht selber lesen.
aber auf lange sicht ist es einfacher (effizienter), das ding zu lesen, zu
verstehen und im hinterkopf zu behalten. in der perl-programmierung gilt
halt auch:
du musst nicht alle perldoc-seiten kennen, aber du musst wissen, wie und
wo du nachschauen musst.
mein persönliches helferlein ist dieses:
Code: (dl )
1
2
3
4
5
6
#!/usr/bin/perl -w
# pdgrep
# ja, ein shellscript hätte es auch getan
exec("find",
       "/usr/lib/perl5/5.8.3", "-name", "*.pod",
       "-exec", "grep", "-B3","-H", "$ARGV[0]", "{}", ";");

$ pdgrep suchbegriff
und natürlich perldoc perltoc\n\n

<!--EDIT|pq|1110225529-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
roli
 2005-03-08 13:04
#52383 #52383
User since
2004-12-31
424 Artikel
BenutzerIn
[default_avatar]
Hi,

das es nicht sein kann, das ich hier immer nur Info's "abfrage", ohne Eigeninitiative ist mir schon klar, aber ...
Ich bin halt was Perl angeht noch Neuling. Ich dachte ja auch das ich das mit "$_" verstanden hatte, leider war dem nicht so, und die Wiki Seite ist schon heftih gross. Aber ich arbeite drann.
Ausserdem muss ich persoehnlich leider auch eingestehen, das ich z.B. mit der PHP Docu wesentlich besser klar komme. Uebrigens, wenn du/ihr mal 'ne Linux Frage habt, dann koennte ich auch mal was beitragen. So wird's halt noch 'ne weile dauern bis ich mal eine Frage beantworten kann.
Roland
--
"Steh vorn, während du fragst;
sitzen soll, wer antwortet."
Aus "Die Edda des Snorri Sturluson" "Gylfis Täuschung" Strophe 2
pq
 2005-03-08 15:28
#52384 #52384
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
du verstehst mich wohl falsch. es ist ja kein thema zu sagen "ich hab das
und das dokument gelesen, hab aber den teil blabla nicht so ganz
verstanden".
damit hilfst du denen, die dir helfen sollen/wollen, ganz erheblich.
es zeigt, dass du dir selbst vorher schon mühe gegeben hast.
darauf will ich hinaus.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
ptk
 2005-03-08 19:53
#52385 #52385
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=pq,07.03.2005, 20:57]$ pdgrep suchbegriff[/quote]
Du bist also noch nicht auf perlindex (CPAN:Text::English) umgestiegen. Ist das grep schnell genug?
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2005-03-06 20:30.