Server IP : 85.214.239.14 / Your IP : 18.190.239.189 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /usr/share/perl5/ |
Upload File : |
package oo; use strict; use warnings; use Moo::_Utils qw(_load_module); sub moo { print <<'EOMOO'; ______ < Moo! > ------ \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || EOMOO exit 0; } my $package; sub import { moo() if $0 eq '-'; $package = $_[1] || 'Class'; if ($package =~ s/^\+//) { _load_module($package); } my $line = (caller)[2] || 1; require Filter::Util::Call; my $done; Filter::Util::Call::filter_add(sub { if (!$done) { s{\A}{package $package;\nuse Moo;\n#line $line\n}; $done = 1; } return Filter::Util::Call::filter_read(); }); } 1; __END__ =head1 NAME oo - syntactic sugar for Moo oneliners =head1 SYNOPSIS perl -Moo=Foo -e 'has bar => ( is => q[ro], default => q[baz] ); print Foo->new->bar' # loads an existing class and re-"opens" the package definition perl -Moo=+My::Class -e 'print __PACKAGE__->new->bar' =head1 DESCRIPTION oo.pm is a simple source filter that adds C<package $name; use Moo;> to the beginning of your script, intended for use on the command line via the -M option. =head1 SUPPORT See L<Moo> for support and contact information. =head1 AUTHORS See L<Moo> for authors. =head1 COPYRIGHT AND LICENSE See L<Moo> for the copyright and license. =cut