in reply to system command with arguments Error
boo hiss! I hate seeing one Perl script calling another. Sloppy...
What might help you out is to do one of two things in descending levels of difficulty:
- Convert the functionality of Cart.pl to a module
- Convert the functionality of Cart.pl to a sub
you'd actually have to wrap the logic in some fashion that makes sense. For instance, here's a small Perl script I want to convert.$ cp Cart.pl Cart.pm
which could become:#!/usr/bin/perl -w use strict; # # This is the main part of the script here... my ($parm1,$parm2,$parm3,$parm4)=@ARGV; func1($parm1,$parm2) $func2($parm3,$parm4) exit(0); sub func1{ #logic here. } sub func2{ #logic here } | | etc |
You could then invoke it as:package Cart; sub new { shift; my $self={}; bless $self,"Cart"; return $self; } sub doCart { my ($self,$parm1,$parm2,$parm3,$parm4)=@_; # main part of original script goes here } sub func1{ } sub func2{ } 1;
the important part is the use lib part which causes Perl to look for your module where it lives. In this case I'm saying the same place the script lives. You could also do#!/usr/bin/perl -w use strict; use lib qw @ /path/to/directory/my/binary/runs/from @; use Cart; my $cart = new Cart(); | | hand waving | $cart->doCart($arg1,$arg2,$arrg3,$arrr_ahoy_matey); | | etcetera... |
use FindBin qw/ $Bin /; use lib "$Bin"; | etc
Peter L. Berghold -- Unix Professional
Peter -at- Berghold -dot- Net; AOL IM redcowdawg Yahoo IM: blue_cowdawg
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: system command with arguments Error
by ansh batra (Friar) on Jan 07, 2013 at 19:41 UTC | |
by tbone654 (Beadle) on Jan 08, 2013 at 04:11 UTC |
In Section
Seekers of Perl Wisdom