كيف يمكنني إنشاء كائن بإرجاع قيم مختلفة في مختلف العددية السياقات?

StackOverflow https://stackoverflow.com/questions/800436

  •  03-07-2019
  •  | 
  •  

سؤال

أريد العودة إلى قيمة مختلفة في سلسلة السياق الرقمية السياق مثل $! لا.وأنا أعلم أنني يمكن معرفة ما إذا كان أنا في قائمة أو سياق الحجمي مع wantarray ، ولكن هل هناك أي طريقة في بيور بيرل لتحديد سياق الحجمي أنا ؟ أفترض هناك إجابة في XS وكذلك أنا على استعداد لاتخاذ هذا الجواب إذا كان هناك أي وسيلة تفعل ذلك في بيور بيرل.

هل كانت مفيدة؟

المحلول

تحقق من Scalar::Util وحدة, على وجه التحديد dualvar() وظيفة:

use Scalar::Util qw(dualvar);

my $scalar = dualvar 10, "Hello";
my $twelve = $scalar + 2;          # $twelve = 12
my $greeting = $scalar . " world"; # $greeting = "Hello world"

Scalar::Util هو جزء من جوهر التوزيع ، يجب أن تكون متوافرة في أي مكان لديك بيرل.

نصائح أخرى

في حين يمكنني اقتراح الحالات المفيد (ربما الأرقام الرومانية), يمكنك أن تكون أفضل حالا خلق كائن مع عدد صحيح سمة السلسلة.استخدام سمة المناسبة في السياق المناسب.

وهذا يعطي لك المرونة للتمكن من التحميل الزائد العمليات مع استخدام الزائد'.في الأرقام الرومانية سبيل المثال ، dualvar العمل حتى كنت ترغب في إضافة 2 الأرقام الرومانية معا.

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