Schrift
[thread]11086[/thread]

scalar comma operator (Seite 3)



<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten
#Kein Kommentar
 2008-01-13 21:45
#104677 #104677
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
Quote
$arr_ref=\(...);
$hash_ref=\[...];


naja, ich finde nach einiger zeit gewöhnt man sich dran und lernt es auch zuschätzen.

ich meine, wenn du auf ein array-element (also einen skalar) zugreifst nimmst du [i]. und wenn du auf ein hash-element zugreifst (auch ein skalar) nimmst du {key}.
also bedeuten die eckigen und geschweiften klammern immer singular oder skalar.

während hingegen (..) immer eine liste anzeigt oder zurückgibt oder definiert... also plural.

jetzt wäre es doch ein bisschen verwirrend, wenn man plötzlich eine hashreferenz mit \[..] erstellen würde, obwohl man normalerweise bei hashs {..} benutzt.....

naja also weiß nich ob ich es richtig ausgedrückt und du es verstanden hast :)

aber man sieht eindeutig, dass Larry ein Linguist ist und es so einfach wie möglich machen will
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
lichtkind
 2008-01-13 23:50
#104678 #104678
User since
2004-03-22
5703 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
also nochmal, in perl 6:

() ist nur zum gruppieren
[] macht immer eine arrayref,
{} coderef, es sei es steht hash davor, ein => ist drin oder wird einer variable mit % am anfang zugeweisen, dann natürlich hashref. hash ist jetzt ein array of pairs
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
KurtZ
 2008-01-14 14:46
#104704 #104704
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
lichtkind+2008-01-13 22:50:29--
{} coderef, es sei es steht hash davor, ein => ist drin oder wird einer variable mit % am anfang zugeweisen, dann natürlich hashref. hash ist jetzt ein array of pairs


find ich gut dass man sich das "sub" spart ... geht das auch so weit dass man "do" dann einsparen kann?

Code (perl): (dl )
1
2
3
for ( { $i=0; $j=2 }; $j<10; { $i++;$j++ } ) {
...
}
TMTOWTDYOG (there's more than one way to dig your own grave)
renee
 2008-01-14 14:54
#104706 #104706
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
KurtZ+2008-01-14 13:46:53--
[...]

Code (perl): (dl )
1
2
3
for ( { $i=0; $j=2 }; $j<10; { $i++;$j++ } ) {
...
}



Das kann man mit einem aktuellen Perl so machen:
Code (perl): (dl )
1
2
3
for (  $i=0, $j=2 ; $j<10;  $i++, $j++  ) {
  print '$i: ', $i, ' -> $j: ', $j,"\n";
}
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/
lichtkind
 2008-01-14 15:30
#104707 #104707
User since
2004-03-22
5703 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
KurtZ: in perl 6 gibt es erhebliche unterschiede zwischen einem block und einer subroutine. grad das ganze parameter passing, currying, wrapping und einiges mehr gibts nur für subs. aber klar für coderefs die nur kleinigkeiten machen nimmt man besser blocks :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
betterworld
 2008-01-14 18:54
#104720 #104720
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
lichtkind+2008-01-13 22:50:29--
{} coderef, es sei es steht hash davor, ein => ist drin oder wird einer variable mit % am anfang zugeweisen, dann natürlich hashref. hash ist jetzt ein array of pairs

Hm, also meines Wissens ist {} (ohne sub davor) nur dann eine Coderef, wenn man es als (ersten) Parameter an eine Subroutine uebergibt, die einen entsprechenden Prototyp hat. Oder eben an Builtins wie grep oder do.

Edit: Sorry, hab uebersehen, dass es um Perl 6 ging ;)
Macht aber nichts, denn das, was ich eben ueber Perl 5 geschrieben habe, wollte ich hier sowieso erwaehnen.
<< |< 1 2 3 >| >> 26 Einträge, 3 Seiten



View all threads created 2008-12-31 02:05.