هي {$ list_ref} و @ $ list_ref مكافئ في بيرل؟
-
18-09-2019 - |
سؤال
أنا جديد على بيرل وأنا فضولي سواء @{$list_ref}
و @$list_ref
تعادل تماما.
يبدو أنهم قابلين للتبادل، لكنني عصبي أن هناك شيئا دقيقا قد أكون في عداد المفقودين.
المحلول
نعم، إنها مكافئة. تحتاج إلى الأقواس عند التعبير أكثر من متغير العددية البسيطة، على سبيل المثال,
push @{ $foo{$bar} } => "baz";
لمزيد من التفاصيل، انظر باستخدام المراجع قسم من وثائق حول المراجع. وبعد تتضمن وثائق بيرل القياسية أيضا العديد من البرامج التعليمية على استخدام المراجع:
- فهم المراجع اليوم (المذكورة من قبل هوبس في تعليقات السؤال)
- معالجة المصفوفات من المصفوفات في بيرل
- بيرل هياكل البيانات كتاب الطبخ
نصائح أخرى
لقد وجدت دائما أنه من المفيد أن تتذكر أن الأقواس الخارجية ليست سحرية نصنية، فهي مجرد كتلة تعرض مرجعا. يمكن أن يكون التعبير داخل الكتلة أي شيء يرجع مرجعا:
$ perl -le 'sub foo {[qw/ apple orange banana /]} print ${print "Do something here."; foo()} [1]'
Do something here.
orange
لا تنتمي إلى StackOverflow