Jenda Krynicky wrote:
> From: "Dr.Ruud" <[EMAIL PROTECTED]>
>> "Jenda Krynicky" schreef:
>>> Rob Dixon:
>>>>
>>>> local $" = ',';
>>>> print "@array\n";
>>>
>>> print join(',', @array), "\n";
>>>
>> is much cleaner and safer. Leave $" alone.
>> I don't agree. It is totally fine to use a local-ed $", if it is inside
>> a minimal block.
>
> Is it? What if the array you're gonna print is tie()d? Maybe it is
> not now, but what if it becomes later? To share the array between
> threads/processes, to store it on disk, to ...
>
> If there was no simple and clear way to print the array with a
> specific delimiter, I'd say go ahead. But there is. A way that's much
> easier to understand. Without having to know about an obscure builtin
> variable that affects the way arrays are interpolated into strings.
A program with arrays that are tied in one place and not in another has bigger
problems than this anyway. But I don't see a problem with using $" with tied
arrays, unless the tied class happens to overload stringification.
print join(',', @array), "\n";
is a lot noisier and IMO clumsier than
{
local $" = ',';
print "@array\n";
}
and after all, even if you don't know what $" does it's very simple to look it
up and also easy to remember.
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/