Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12207[/thread]

.txt und Arrays (Seite 2)

Leser: 2


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
pq
 2008-07-21 12:39
#112368 #112368
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Hagen+2008-07-21 07:53:46--
und warum ich in Perl ein pre-declaire für Subroutinen brauche?

to declare hat nichts mit einem Wikipedia:Eclair zu tun...
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
pq
 2008-07-21 12:41
#112369 #112369
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
MatthiasW+2008-07-21 08:58:48--
Ich finde sie deshalb so praktisch, weil man dann sicher gehen kann, dass man die Parameter so vorfindet, wie man sie gerne hätte.

das kann man leider nicht, denn prototypen kann man einfach umgehen. viele machen das sogar
aus unwissenheit, indem sie subroutinen mit einem & vorne aufrufen.
von daher solltest du die parameter eh prüfen.
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
MatthiasW
 2008-07-21 14:12
#112381 #112381
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
Naja, ich gehe davon aus, dass diejenigen, die meinen Code verwenden, sich bsw. perlsub durchgelesen haben und & nur verwenden um das aktuelle @_ an die aufgerufene Funktion zu übergeben, oder die Prototypen mit Absicht auszuschalten.
Alles andere ist ein Anwenderfehler ;)

Kann man eigentlich innerhalb einer Funktion prüfen, ob sie mit & oder ohne aufgerufen wurde?

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
pq
 2008-07-21 14:37
#112383 #112383
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
MatthiasW+2008-07-21 12:12:11--
Naja, ich gehe davon aus, dass diejenigen, die meinen Code verwenden, sich bsw. perlsub durchgelesen haben

dann bist du aber ganz schön optimistisch =)
lies mal perl best practices, wenn du die gelegenheit hast.
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
renee
 2008-07-21 17:21
#112395 #112395
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
MatthiasW+2008-07-21 12:12:11--
Kann man eigentlich innerhalb einer Funktion prüfen, ob sie mit & oder ohne aufgerufen wurde?


Ja, das geht, ist aber recht aufwändig. Mal schauen, ob ich ein kleines Modul draus machen kann.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MatthiasW
 2008-07-21 20:50
#112406 #112406
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
@pq: Das Buch steht sehr weit oben auf meiner Wunschliste^^ Kannst du mir die englische oder eher die deutsche Version empfehlen?

@renee: Wäre nett wenn du mich dann informieren könntest :)

MfG
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
pq
 2008-07-21 21:22
#112407 #112407
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
MatthiasW+2008-07-21 18:50:04--
@pq: Das Buch steht sehr weit oben auf meiner Wunschliste^^ Kannst du mir die englische oder eher die deutsche Version empfehlen?

also ich lese bei sowas immer die englische version, und die finde ich prima. ich denke,
das englisch ist auch relativ leicht verstaendlich, da sehr viel code enthalten ist und weniger prosa.
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
renee
 2008-07-21 22:29
#112408 #112408
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
MatthiasW+2008-07-21 18:50:04--
@renee: Wäre nett wenn du mich dann informieren könntest :)


Da die Frage nach so einer Funktion in letzter Zeit häufiger vorgekommen ist, habe ich das auch mal auf CPAN geladen: CPAN:Sub::Called

Ich habe nur komische Effekte gehabt, wenn es um Subroutinen-Referenzen geht. Aber bei "normalen" Subroutinen funktioniert das gut!

Feedback/Bugmeldungen/Anregungen sind immer willkommen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
betterworld
 2008-07-22 01:01
#112413 #112413
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
renee+2008-07-21 20:29:33--
MatthiasW+2008-07-21 18:50:04--
@renee: Wäre nett wenn du mich dann informieren könntest :)


Da die Frage nach so einer Funktion in letzter Zeit häufiger vorgekommen ist, habe ich das auch mal auf CPAN geladen: CPAN:Sub::Called

Ich habe nur komische Effekte gehabt, wenn es um Subroutinen-Referenzen geht. Aber bei "normalen" Subroutinen funktioniert das gut!

Feedback/Bugmeldungen/Anregungen sind immer willkommen.

Das ist ne lustige Idee :) Hast Du das eben gerade gebaut?

Neben der Sache mit den anonymen Subroutinen kommt es auch zu "Falschmeldungen", wenn in derselben Zeile eine Subroutine mit & aufgerufen wird und eine ohne. Wobei perl oft auch einen etwas ausgedehnteren Begriff davon hat, was in derselben Zeile steht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use Sub::Called;

sub dummy {
return 1;
}

sub foo {
print Sub::Called::with_ampersand(), "\n";
}


my %hash = (
dummy => &dummy(),
foo => foo(),
);

Das gibt "1" aus, obwohl eigentlich "0" richtig waere. Das liegt wohl daran, dass der Parser das Konstrukt behandelt, als stuende es in einer einzigen Zeile. Jedenfalls in perl 5.8.8, vielleicht hat sich das in 5.10 ja geaendert.
renee
 2008-07-22 11:24
#112427 #112427
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
betterworld+2008-07-21 23:01:26--
Das ist ne lustige Idee :) Hast Du das eben gerade gebaut?

Ja... nachdem letzt in de.comp.lang.perl.misc schonmal diese Frage aufgetaucht ist, habe ich mich da einfach mal drangesetzt.

Quote
Neben der Sache mit den anonymen Subroutinen kommt es auch zu "Falschmeldungen", wenn in derselben Zeile eine Subroutine mit & aufgerufen wird und eine ohne.

Danke, da werde ich wohl noch ein paar Tests schreiben und versuchen das zu lösen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2008-07-20 21:30.