Perl
Modules and Packages
Create reusable modules with package keyword.
By EZ4Code Team
modulepackageexport
Code
# File: MyUtils.pm
package MyUtils;
use strict;
use warnings;
use Exporter 'import';
our @EXPORT_OK = qw(greet factorial sum);
sub greet {
my ($name) = @_;
return "Hello, $name!";
}
sub factorial {
my ($n) = @_;
return 1 if $n <= 1;
return $n * factorial($n - 1);
}
sub sum {
my @nums = @_;
my $total = 0;
$total += $_ for @nums;
return $total;
}
1; # Module must return true
# Usage:
# use MyUtils qw(greet factorial);
# print greet("Alice");
# print factorial(5);
# OO style (Moose or Moo recommended)
package Person;
use Moose;
has 'name' => (is => 'ro', isa => 'Str', required => 1);
has 'age' => (is => 'rw', isa => 'Int', default => 0);
sub greet {
my ($self) = @_;
return "Hi, I'm " . $self->name;
}
__PACKAGE__->meta->make_immutable;
1;Explanation
Modules end in .pm and return a true value (1;). @EXPORT_OK lists functions importers can request. use Module qw(func) imports specific functions. For OO, Moose is the modern standard — has declares attributes with type constraints, provides constructors, accessors, and roles. Moo is a lighter alternative. Always end modules with 1;.
More Perl Snippets
Scalars, Arrays, and Hashes
Perl's three main data types with sigils.
Regular Expressions
Perl is famous for its powerful regex support.
Subroutines and References
Define subs and use references for complex data.
Complex Data Structures
Build nested structures with references.
File I/O
Read and write files with filehandles.
OOP with Moose
Modern object-oriented programming in Perl.