Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^3: require "shared.pl" with use strict;

by choroba (Cardinal)
on Feb 19, 2015 at 17:27 UTC ( [id://1117244]=note: print w/replies, xml ) Need Help??


in reply to Re^2: require "shared.pl" with use strict;
in thread require "shared.pl" with use strict;

No, you should use [id://NUMBER] to link to other nodes. See What shortcuts can I use for linking to other information?.

The preferred thing to export from a module is a subroutine. Or, alternatively, you can switch to the object oriented approach.

Shared.pm:

package Shared; use warnings; use strict; use Exporter qw{ import }; our @EXPORT_OK = qw{ test_val test_list }; sub test_val { "hello world\n" } sub test_list { ( [ 'Shadow', 'Blinky' ], [ 'Speedy', 'Pinky' ], [ 'Bashful', 'Inky' ], [ 'Pokey', 'Clyde' ], ) } __PACKAGE__

test.pl:

#!/usr/bin/perl use warnings; use strict; use Shared qw{ test_val test_list }; print test_val(); for my $pair (test_list()) { print "@$pair\n"; }

Object oriented

Shared_OO.pm:
package Shared_OO; use warnings; use strict; sub new { my $class = shift; bless { test_val => "hello world\n", test_list => [ [ 'Shadow', 'Blinky' ], [ 'Speedy', 'Pinky' ], [ 'Bashful', 'Inky' ], [ 'Pokey', 'Clyde' ], ], }, $class } sub test_val { shift()->{test_val} } sub test_list { @{ shift()->{test_list} } } __PACKAGE__

test_oo.pl:

#!/usr/bin/perl use warnings; use strict; use Shared_OO; my $o = 'Shared_OO'->new; print $o->test_val; for my $pair ($o->test_list) { print "@$pair\n"; }
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1117244]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (4)
As of 2024-04-19 14:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found