История изменений
Исправление
gh0stwizard,
(текущая версия)
:
#!/usr/bin/perl
use strict;
use warnings;
use JSON::XS;
use Scalar::Util qw/blessed/;
sub f {
my $un = 0; # unblessed
my $bl = 0; # blessed
eval { (blessed $_ ? $bl++ : $un++) for (@_); $bl }
and $bl == 2 and $un == 1
and @_ == 3
or die "f: expect 2 blessed objects and 1 unblessed,\n\t"
."but got blessed $bl and unblessed $un objects";
print shift->pretty->utf8->encode({hello => "lor"});
$\ = "\n";
print shift->pretty->utf8->encode({i => "love $_[-1]"});
}
eval {
f(JSON::XS->new, JSON::XS->new);
};
print $@ if ($@);
eval {
f(JSON::XS->new, JSON::XS->new, (bless [], "smth"), 1, 2, 3);
};
print $@ if ($@);
f(JSON::XS->new, JSON::XS->new, "perl");
Делай все что хочешь, лучше не придумаешь языка :)
Исходная версия
gh0stwizard,
:
#!/usr/bin/perl
use strict;
use warnings;
use JSON::XS;
use Scalar::Util qw/blessed/;
sub f {
my $un = 0; # blessed
my $bl = 0; # unblessed
eval { (blessed $_ ? $bl++ : $un++) for (@_); $bl }
and $bl == 2 and $un == 1
and @_ == 3
or die "f: expect 2 blessed objects and 1 unblessed,\n\t"
."but got blessed $bl and unblessed $un objects";
print shift->pretty->utf8->encode({hello => "lor"});
$\ = "\n";
print shift->pretty->utf8->encode({i => "love $_[-1]"});
}
eval {
f(JSON::XS->new, JSON::XS->new);
};
print $@ if ($@);
eval {
f(JSON::XS->new, JSON::XS->new, (bless [], "smth"), 1, 2, 3);
};
print $@ if ($@);
f(JSON::XS->new, JSON::XS->new, "perl");
Делай все что хочешь, лучше не придумаешь языка :)