سؤال

لماذا أحصل على القيم من "$ n" و "$ m" بعد حذف المقالين المعنيين؟

#!/usr/bin/env perl
use warnings;
use 5.012;

package Foo;

our $n = 10;
our $m = 20;

delete $Foo::{'n'};
delete $Foo::{'m'};

say $n; # 10
say $m; # 20
هل كانت مفيدة؟

المحلول

لأن جدول الرمز يستخدم فقط في وقت الترجمة (أو عبر مرجع رمزي). العالم الذي هو قيمة $Foo::{...} يشار إليه مباشرة بواسطة الكود المترجم ، لذا فإن إدخال جدول الرموز الممتاز غير الممتاز ليس له أي تأثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top