use
Perlmazing;
use
List::Util ();
sub
main {
my
@call
=
caller
(0);
my
@copy
= List::Util::shuffle(
@_
);
if
(
wantarray
) {
return
@copy
;
}
elsif
(
defined
wantarray
) {
return
$_
[0];
}
else
{
for
(
my
$i
= 0;
$i
<
@copy
;
$i
++) {
eval
{
$_
[
$i
] =
$copy
[
$i
];
};
if
(
my
$e
= $@) {
if
(
$e
=~ /^Modification of a
read
\-only value attempted/) {
die
"Modification of a read-only value attempted at $call[1] line $call[2]\n"
;
}
else
{
die
"$e\n...from call at $call[1] line $call[2]\n"
;
}
}
}
}
}
1;