Linux Ask!

Linux Ask! is a Q & A web site specific for Linux related questions. Questions are collected, answered and audited by experienced Linux users.

Sep 262011

Enable Perl strict mode to restrict unsafe constructs


In Perl, you can enforce using the strict mode to reduce the chance of nasty error, e.g.

$foo = 'bar';
print $foo;

If you run the above problem, it is completely valid.

# perl

However, if you use the strict pragma

use strict;

$foo = 'bar';
print $foo;

And run the program again..

# perl
Global symbol "$foo" requires explicit package name at line 3.
Global symbol "$foo" requires explicit package name at line 4.
Execution of aborted due to compilation errors.

Since the $foo is not declared before the first use, so the compilation stopped. In modern Perl developements, it is recommended to alwasys use the strict pragma in order to write a better and maintainable program.

To fix the problem, you need to use the my keyword, e.g.

use strict;

my $foo = 'bar';
print $foo;

And run the program again. (Thanks Jeroen for the suggestion)

Jan 022011

Multi-line string in Perl


To assign a multi-line string to a variable in Perl, is easy with the following trick:

my $html = <<END;
    This is HTML content.


print $html;
Dec 212010

How can I find out my current package in Perl?


To find the current package in your Perl script, you can try something like the following:

package Foo;

my $current_package = __PACKAGE__;
print "I am in package $current_package\n";


When executed:

# perl

I am in package Foo