if (defined $x)
check a value or variable is undef or not.
undef $x;
reset a variable to undef.
qq, double-q operator; q, single-q operator
print qq(The "name" is "$name"\n);
print qq(The (name) is "$name"\n);
print qq{The )name( is "$name"\n};
print q[The )name} is "$name"\n];
The result will be:
The "name" is "foo"
The (name) is "foo"
The )name( is "foo"
The )name} is "$name"\n
x is repetition operator.
say "2" x 4;
will print the result:
2222
lookslikenumber:
use Scalar::Util qw(looks_like_number);
my $z = 3;
say $z;
my $y = "3.14";
if (looks_like_number($z) and looks_like_number($y)) {
say $z + $y;
}
String comparison operators: eq, ne, lt, gt, le, ge
String functions: length, lc, uc, index, substr
my $str = "The black cat climbed the green tree";
say index $str, 'cat'; # 10
my $str = "The black cat climbed the green tree";
say substr $str, 4, 5; # black
int(): Integer part of a fractional number
rand(): Random numbers, A call to the rand($n) function of Perl will return a random fractional number between 0 and $n. It can be 0 but not $n.
last: skip the rest of the block and won’t check the condition again.
while (1) {
print "Which programming language are you learning now? ";
my $name = <STDIN>;
chomp $name;
if ($name eq 'Perl') {
last;
}
say 'Wrong! Try again!';
}
say 'done';
exit: exit the script running
Redirect standard output or standard error:
perl test.pl > output_log
perl test.pl 2 > error_log
perl test.pl 2 > /dev/null #black hole
print scalar keys %hash;
size of the hash.
&func1 #function call
$_ #default input and pattern-searching space
$. current line number for the last filehandler accessed
$0 name of the programming being executed
$$ process number of the Perl running the script
$! yield the current value of error message
$@ the perl syntax error message from the last eval() operator