Sponsored Content
Top Forums Shell Programming and Scripting Passing arguments to Perl Function Post 302287930 by pludi on Monday 16th of February 2009 03:50:18 AM
Old 02-16-2009
Try it like this (changes in red)
Code:
#!/usr/local/bin/perl
use strict;
use warnings

my $DATABASE = "/home/myfile/DATABASE_DIR";

open_my_doc( "Pricelist" );

sub open_my_doc {
print "$DATABASE/$_[0]\n"; 
open(my FH, "< $DATABASE/$_[0]" ) or die $!;
        while (<FH>) {
          print $_;
        }
        close FH;
}

use strict and use warnings help catch a lot of programmatic errors that otherwise would only show themselfs later (maybe even only as heisenbugs).
Calling perl -c <script> does a syntax check without running it, so that syntactic error (like your last }) can be found.
I suggest installing perltidy, as it will clean your code in terms of indentation and unneeded clutter (like ; at the end of blocks when they aren't needed)
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

passing arguments

I'm trying to pass a filename, or all the files in the current directory to the ls command with a script. Unsuccessful so far, here are a few of my attempts: #!/bin/ksh read fname #if (( $# > 0 )); then $fname | ls -l #fi this produces a long listing of all the files in my current... (4 Replies)
Discussion started by: jpprial
4 Replies

2. Shell Programming and Scripting

Passing arguments to a Perl script

I am playing around with Perl and wrote the script below that is executed from the command line, it will split data up in a file based on a value supplied. When executed you provide two arguments - the file that contains the data to be split and the character you want to split by. It works as... (4 Replies)
Discussion started by: jyoung
4 Replies

3. Shell Programming and Scripting

Passing global variable to a function which is called by another function

Hi , I have three funcions f1, f2 and f3 . f1 calls f2 and f2 calls f3 . I have a global variable "period" which i want to pass to f3 . Can i pass the variable directly in the definition of f3 ? Pls help . sars (4 Replies)
Discussion started by: sars
4 Replies

4. Shell Programming and Scripting

Perl Function Array Arguement Passing

Hi All, I have some questions regarding array arguements passing for Perl Function. If @array contains 2 items , arguements passing would be like Code_A. But what if @array needs to add in more items, the rest of the code like $_ will have to be modified as well (highlighted in red), which is... (5 Replies)
Discussion started by: Raynon
5 Replies

5. Shell Programming and Scripting

passing arguments

Hi I have a script to which I pass multiple arguments, for example lets say the script name is "abc". I run the script like ./abc def /file <directory location> In the above "def" is the first argument and "/file" is the second argument. I expect <directory location> that is passed after... (4 Replies)
Discussion started by: zmfcat1
4 Replies

6. UNIX for Dummies Questions & Answers

Passing arguments

I need to pass arguments to a shell script.My batch is calling some java program. ################# x=$1 y=$2 java -classpath program ################### if first parameter and second parameter is null then java -classpath program if first parameter is not null and second parameter is... (3 Replies)
Discussion started by: mnjx
3 Replies

7. Shell Programming and Scripting

Reading a string and passing passing arguments to a while loop

I have an for loop that reads the following file cat param.cfg val1:env1:opt1 val2:env2:opt2 val3:env3:opt3 val4:env4:opt4 . . The for loop extracts the each line of the file so that at any one point, the value of i is val1:env1:opt1 etc... I would like to extract each... (19 Replies)
Discussion started by: goddevil
19 Replies

8. Shell Programming and Scripting

Problem in passing date to external function from perl script.

my $sysdate = strftime('%Y-%m-%d', localtime ); biDeriveByDate('Table_Str',$sysdate,\@lIndx,\@lResVals) In a perl script, when I'm trying to pass $sysdate to some external function it's not working since $sysdate is passed as a string mentioned above but my function is expecting a date value... (1 Reply)
Discussion started by: Devesh5683
1 Replies

9. Shell Programming and Scripting

Passing arguments to a perl script

Hi I need to pass comma seperated arguments to a perl script? It is like: Exect.pl -d GUI1,GUI2,GUI3 and I need to store these argsGUI1,GUI2,GUI3 in an array. can anyone suggest how to do that: (1 Reply)
Discussion started by: rkrish
1 Replies

10. Shell Programming and Scripting

Problems passing shell arguments to perl

Semi-newbie, so flame throwers to 'singe-only', please. ;-) I have a large number of (say) .html files, where I'd like to do a recursive in-place search and replace a particular string. The following bit of perl works fine: perl -pi -e 's/oldstring/newstring/g' `find ./ -name *.html` ... (2 Replies)
Discussion started by: johnny_canucl
2 Replies
INN::Config(3pm)					    InterNetNews Documentation						  INN::Config(3pm)

NAME
INN::Config - Export all the variables an INN Perl script might need DESCRIPTION
This Perl module sets up any and all the variables that an INN Perl script might need. More particularly, it allows to use inn.conf variables: they are all provided by innconfval, as well as the version of INN (in the variable $INN::Config::VERSION for its short number form, on in $INN::Config::version for its complete form). Other useful variables are also provided (directories, files, programs, masks, parameters). The complete list can be obtained with the following script that prints them out: use lib '<pathnews>/lib/perl'; use INN::Config; use Data::Dumper; my ($varname, $value); foreach my $var (@INN::Config::EXPORT_OK) { if ($var =~ /^$(.*)$/) { $varname = "INN::Config::$1"; $value = Dumper($$varname); $value =~ s/^$VAR1 = //; print "$$varname = $value"; } elsif ($var =~ /^@(.*)$/) { $varname = "INN::Config::$1"; $value = Dumper(@$varname); $value =~ s/^$VAR1 = //; print "@$varname = $value"; } } A local Perl script named innshellvars.pl.local in pathetc will be loaded, if present and executable, at the end of the run of this module. A typical use is to add or override variables. You only have to declare the module at the beginning of them: use lib '<pathnews>/lib/perl'; use INN::Config; Then, you can for instance use: print $INN::Config::localmaxartsize; to print the value of localmaxartsize as it is set in inn.conf. You can also specify a version when you import the module. If you write: use INN::Config 2.5.0; only versions of INN superior to 2.5.0 will be able to run the Perl script. It is also possible to import the variables directly in your namespace if you specify what you want to import: use INN::Config qw($localmaxartsize $pathbin); Note that a legacy innshellvars.pl is also provided in pathnews/lib for compatibility reasons with old Perl scripts not shipped with INN. It was used by versions of INN anterior to 2.5.0. The corresponding scripts for Shell and Tcl are, however, still in use: innshellvars and innshellvars.tcl. They offer the same capabilities as this module. HISTORY
innshellvars.pl was written by James Brister <brister@vix.com> for InterNetNews in 1996. It was converted to the INN::Config Perl module by Julien Elie in 2007. $Id: Config.pm.in 9311 2011-08-06 20:18:42Z iulius $ SEE ALSO
inn.conf(5), innconfval(1), perl(1). INN 2.5.3 2011-08-22 INN::Config(3pm)
All times are GMT -4. The time now is 04:58 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy