যদি আপনি প্রাক-5.10 এর সাথে আটকে থাকেন তবে উপরে প্রদত্ত সমাধানগুলি say
ফাংশনটির সম্পূর্ণরূপে প্রতিলিপি দেবে না । উদাহরণ স্বরূপ
sub say { print @_, "\n"; }
যেমন অনুরোধের সাথে কাজ করবে না
say for @arr;
বা
for (@arr) {
say;
}
... কারণ উপরের ফাংশনটি অন্তর্নিহিত গ্লোবাল $_
লাইক print
এবং আসল ফাংশনটিতে কাজ করে না say
।
আরও ঘনিষ্ঠভাবে পার্ল প্রতিলিপি করতে 5.10+ say
আপনি এই ফাংশনটি চান
sub say {
if (@_) { print @_, "\n"; }
else { print $_, "\n"; }
}
যা এখন এটির মতো কাজ করে
my @arr = qw( alpha beta gamma );
say @arr;
say for @arr;
say
Perl6 মধ্যে builtin একটু ভিন্নভাবে আচরণ করে। এটিকে চালিয়ে যাওয়া say @arr
বা @arr.say
কেবল অ্যারে আইটেমগুলিকে একত্রিত করবে না, বরং তালিকার বিভাজকের সাথে পৃথক করে প্রিন্ট করবে। এটি perl5 এ প্রতিলিপি করতে আপনি এটি করবেন
sub say {
if (@_) { print join($", @_) . "\n"; }
else { print $_ . "\n"; }
}
$"
গ্লোবাল তালিকার বিভাজক পরিবর্তনশীল, বা আপনি যদি ব্যবহার করছেন English.pm
তবে তা হয়$LIST_SEPARATOR
এটি এখন আরও বেশি পার্ল 6 এর মতো কাজ করবে
say @arr;