A few weeks ago a friend of mine, who is a Ruby programmer that has to write Perl for $job, said "Perl makes me cry". He gave specific examples, one was...
Perl:
my ($self) = @_;
push @{ $test_files{ident $self} } , @failure_files;Ruby:
@test_files.push(*failure_files)I feel like perl is actively resisting me here.
And he's right, it is. The dereferencing syntax has nasty, sharp edges.
I thought autobox would solve this, but it doesn't add in the core functions. Then I discovered autobox::Core which does!
use autobox;
use autobox::Core;
$test_files{ident $self}->push(@failure_files);
It's shorter, it involves less #*@(}, and it gets the subjects and verbs in the right order.
Moose::Autobox (Score:1)
You might also want to take a look at Moose::Autobox. It has a different goal from autobox::Core, which is to be more like the proposed core types and methods for Perl 6 (mostly found in Syn 29). And as far as your ruby-friend is concerned, you might want to show him Moose itself, he might not miss ruby as much.
- StevanClass:Std (Score:1)
push @{ $self->{'files'} }, @more_files;
Re: (Score:1)
Throwing in an extra arrow makes it look simpler? Strange definition of simpler. :-)
I like to preface my inside-out object methods with “
my $this = ident my $self = shift;”, btw, which makes that code into this:Of course Hash::Util::FieldHash [cpan.org]’s
idhashfunction will make that separate$thisunnecessary in 5.10 and you’ll be able to just write this:The real problem persists thro
Re: (Score:1)
Re: (Score:1)
My reply swelled into a post of its own [perl.org].