Oh, ja, hatte ich, war aber schon zu lange her... :)
Kann ich mir die Referenz denn trotzdem irgendwie ausgeben lassen? Ich meine, ich kann obiges schon umschreiben, so, dass es läuft, aber ich probier gern rum und würde z.B. bei einem:
use v6;
my @x;
fill_x(@x);
say @x.perl;
sub fill_x(@x_ is rw) {
for ^3 {.say; @x_.push($_)}
}
gerne überprüfen können, ob @x und @x_ wirklich auf die gleiche Stelle zeigen. (Ginge hier vermutlich mit ===, aber wenn die Variablen z.B. nicht gleichzeitig, sondern nur zeitversetzt existieren...?)
Hat mir schonmal geholfen, danke, ich lass den Thread aber vorerst nochmal ungelöst...irgendwie hab ich oft das Gefühl, dass ich nicht richtig weiß, was abläuft, in perl6...
Edit: Wieso führt Subroutine hier z.B. zu einem anderen Ergebnis, als die anderen Übergaben...an dem Capture liegt es anscheinend nicht, zumindest sieht es für mich so aus, als würde da nur die Liste und keine Information über die ursprünglichen @x und @y gespeichert?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use v6;
my @x = 1,2,3;
my @y = 4,5,6;
say \(@x,@y).perl;
my (@u,@v) = @x,@y;
say ~@u;
my $t = \(@x,@y);
(@u,@v) = @$t;
say ~@u;
blub(@x,@y);
sub blub(@h,@k) {
say ~@h;
}
Last edited: 2012-11-06 16:31:13 +0100 (CET)