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

Hilfe mit einem GB: ich brauche mit nem selbstgeproggten GB (Seite 6)

Leser: 1


<< |< 1 ... 3 4 5 6 >| >> 58 Einträge, 6 Seiten
MW2000
 2003-08-30 21:03
#1836 #1836
User since
2003-08-26
43 Artikel
BenutzerIn
[Homepage] [default_avatar]
AN STRAT NOCHMA BESONDEREN DANK!
Rächtschraibfehla sin Gratis
pq
 2003-08-30 21:17
#1837 #1837
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Strat,30.08.2003, 17:36]Ist korrekt (&function ohne () kann sogar Seiteneffekte haben (z.B. @_));[/quote]
ja schon, aber &funktion() kann auch seiteneffekte haben, z.B. umgehst du damit
den prototypen... =)
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
Strat
 2003-08-30 21:51
#1838 #1838
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=pq,30.08.2003, 19:17][quote=Strat,30.08.2003, 17:36]Ist korrekt (&function ohne () kann sogar Seiteneffekte haben (z.B. @_));[/quote]
ja schon, aber &funktion() kann auch seiteneffekte haben, z.B. umgehst du damit
den prototypen... =)[/quote]
Das finde ich einen sehr positiven Seiteneffekt :-))
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Dubu
 2003-08-31 23:33
#1839 #1839
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Strat,30.08.2003, 19:51][quote=pq,30.08.2003, 19:17]ja schon, aber &funktion() kann auch seiteneffekte haben, z.B. umgehst du damit
den prototypen... =)[/quote]
Das finde ich einen sehr positiven Seiteneffekt :-))[/quote]
Ist es aber ueberhaupt nicht. Wenn man schon Prototypen benutzt, moechte man ja auch, dass sie funktionieren, und die Kombination mit &funktion() macht sie eben unwirksam. Das kann zu sehr, sehr haesslichen Fehlern fuehren.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;

sub my_test (\@$) {
    my ($arref, $sk) = @_;
    print "Das Array hat ", scalar(@$arref), " Werte und der Skalar ist $sk.\n";
}

my @array = (1, 2, 3);

print "Eins:\n";
my_test (@array, 4);
print "Zwei:\n";
&my_test (@array, 4);
Code: (dl )
1
2
3
4
Eins:
Das Array hat 3 Werte und der Skalar ist 4.
Zwei:
Can't use string ("1") as an ARRAY ref while "strict refs" in use at ./proto.pl line 8.
Strat
 2003-09-01 00:59
#1840 #1840
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Dubu,31.08.2003, 21:33][quote=Strat,30.08.2003, 19:51]
Das finde ich einen sehr positiven Seiteneffekt :-))[/quote]
Ist es aber ueberhaupt nicht. Wenn man schon Prototypen benutzt, moechte man ja auch, dass sie funktionieren,[/quote]
Klar, (mir faellt irgendwie gerade keine Verwendung für Prototypen ein, die ich für sinnvoll halte), aber einen solchen Fehler entdeckt man sehr schnell, und uebergibt dann halt einfach das, was die Subroutine haben will. Dann geschieht nicht so viel "Dirty Magic"...\n\n

<!--EDIT|Strat|1062363610-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Dubu
 2003-09-01 01:50
#1841 #1841
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Strat,31.08.2003, 22:59][quote=Dubu,31.08.2003, 21:33]
Klar, (mir faellt irgendwie gerade keine Verwendung für Prototypen ein, die ich für sinnvoll halte),
[/quote]
Siehe mein Beispiel. Du kannst Arrays und Skalare gemischt uebergeben, ohne dass ein List-Flattening stattfindet, analog zu push @array, liste.

Quote
aber einen solchen Fehler entdeckt man sehr schnell, und uebergibt dann halt einfach das, was die Subroutine haben will. Dann geschieht nicht so viel "Dirty Magic"...

Zeig mir, wie man bei meinem Beispiel oben die sub korrekt mit &my_test(...) aufrufen kann, ohne die sub selber zu aendern.
pq
 2003-09-01 02:15
#1842 #1842
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Dubu,31.08.2003, 23:50]Zeig mir, wie man bei meinem Beispiel oben die sub korrekt mit &my_test(...) aufrufen kann, ohne die sub selber zu aendern.[/quote]
hmmm, das ist aber nicht schwer:
Code: (dl )
&my_test (\@array, 4);
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
Dubu
 2003-09-01 08:37
#1843 #1843
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Ja, okay. Ich haette es anders formulieren sollen. &my_test (\@array, 4) geht schon, nur geht my_test (\@array, 4) wiederum nicht, d.h. man haette je nach Schreibweise zwei unterschiedliche Argumentlisten.
<< |< 1 ... 3 4 5 6 >| >> 58 Einträge, 6 Seiten



View all threads created 2003-08-26 18:35.