Getting warning in the Perl Script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Getting warning in the Perl Script
# 1  
Old 02-08-2008
Getting warning in the Perl Script

Hello All,

I have written the below perl script:

#!/usr/bin/perl
use strict;
use warnings;

if ($#ARGV != 2) {
print "usage: merge_eod AP_filename IE_filename \n";
exit;
}
my($trg) = ".trg";
my($output_file) = $ARGV[2];
my($ie_file) = $ARGV[1];
my($ap_file) = $ARGV[0];
my($trg_file) = $output_file . $trg;

open(OF, ">$output_file");
open(IEF, $ie_file);
open(APF, $ap_file);
open(TF, ">$trg_file");


my $ie_line = <IEF>;
my $ie_total = substr($ie_line, 12, 10);

my $ap_line = <APF>;
my $ap_total = substr($ap_line, 12, 10);

if ($ap_total & $ie_total){

my $merge_total = sprintf("%010d", $ap_total + $ie_total);

$ie_line =~ s/$ie_total/$merge_total/;

print OF $ie_line;
}

close(APF);
close(IEF);
close(TF);
close(OF);


and getting the following warning:
Argument "c c c c c " isn't numeric in addition (+) at ./merge_eod.pl line 29, <APF> line 1.
Argument "a a a a a " isn't numeric in addition (+) at ./merge_eod.pl line 29, <APF> line 1.


Any help will be highly appreciated

Cheers,
Pulkit
# 2  
Old 02-08-2008
I assume that the contents you are reading from the file isn't numeric (hence the error). When you are concatenating two strings you should use a dot . to do that.
the %010d will not function if you are using strings...
# 3  
Old 02-08-2008
Thanks, But after using .dot operator and numeric values it is giving:


Argument "1 1 1 1 1 3 3 3 3\n" isn't numeric in sprintf at ./merge_eod.pl line 29, <APF> line 1.
# 4  
Old 02-08-2008
Maybe I'm missing something, what is exactly the contents of $ap_total and $ie_total.
what I assume is that:
$ap_total="1 1 1 1 1" and
$ie_total="3 3 3 3 3"
containing spaces (and therefore not numeric).

if you want to assign the string "1 1 1 1 1 3 3 3 3 3" to merge_total you should:
my $merge_total = sprintf("%s", $ap_total . $ie_total) which has the same effect as:
my $merge_total = $ap_total . $ie_total;

but if you want to add ie_total to ap_total, than you should first get rid of the spaces in the strings $ap_total and $ie_total , and than add them to each other..

at least that's what I think, if I'm totally wrong let me know what you want to assign to $merge_total..
# 5  
Old 02-08-2008
Quote:
Originally Posted by pulkit
Thanks, But after using .dot operator and numeric values it is giving:


Argument "1 1 1 1 1 3 3 3 3\n" isn't numeric in sprintf at ./merge_eod.pl line 29, <APF> line 1.
You will get that when you try making a %s a %d
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies

2. AIX

Perl error : perl: warning: Setting locale failed.

This's my problem perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = "en_US.UTF-8", LC__FASTMSG = "true", LC_MESSAGES = "", LC_CTYPE = "en_US.UTF-8", LC_TYPE = "en_US.UTF-8", LANG = "EN_US"... (1 Reply)
Discussion started by: bobochacha29
1 Replies

3. Shell Programming and Scripting

Excuting perl script from within a perl script with variables.

Not sure what I am doing wrong here, but I can print the list with no issue. Just a blank screen with the 'do'. #!/usr/bin/perl open FILE, "upslist.txt"; while ($line=<FILE>){ if ($line=~/^(.*?),(.*?)$/){ #print "ups:$1 string:$2\n"; do 'check_snmp_mgeups-0.1.pl -H $1 -C $2'; } ... (1 Reply)
Discussion started by: mrlayance
1 Replies

4. Shell Programming and Scripting

Perl : embedding java script with cgi perl script

Hi All, I am aware that html tags can be embedded in cgi script as below.. In the same way is it possible to embed the below javascript in perl cgi script ?? print("<form action="action.htm" method="post" onSubmit="return submitForm(this.Submitbutton)">"); print("<input type = "text"... (1 Reply)
Discussion started by: scriptscript
1 Replies

5. Shell Programming and Scripting

executing perl script from another perl script : NOT WORKING

Hi Folks, I have 2 perl scripts and I need to execute 2nd perl script from the 1st perl script in WINDOWS. In the 1st perl script that I had, I am calling the 2nd script main.pl =========== print "This is my main script\n"; `perl C:\\Users\\sripathg\\Desktop\\scripts\\hi.pl`; ... (3 Replies)
Discussion started by: giridhar276
3 Replies

6. Shell Programming and Scripting

calling a perl script with arguments from a parent perl script

I am trying to run a perl script which needs input arguments from a parent perl script, but doesn't seem to work. Appreciate your help in this regard. From parent.pl $input1=123; $input2=abc; I tried calling it with system("/usr/bin/perl child.pl $input1 $input2"); and `perl... (1 Reply)
Discussion started by: grajp002
1 Replies

7. Shell Programming and Scripting

Perl: Use of uninitiated value warning

Hi I am brand new to perl and I wrote following code. #!/usr/bin/perl use warnings; while (<>) { @arr1 = split(//); $i = 0; foreach (@arr1) { $_ = $arr1; @arr2 = ($arr1,$arr1,$arr1); print "@arr2\n"; (1 Reply)
Discussion started by: polsum
1 Replies

8. Shell Programming and Scripting

Perl :How to print the o/p of a Perl script on console and redirecting same in log file @ same time.

How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ? Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies

9. Shell Programming and Scripting

PERL localtime Warning

Hello All, I am facing a warning "Argument "" isn't numeric in localtime at" what i m using is below my $timestamp = Timestamp(time); go_log("###############$timestamp###############"); can some one please suggest the way to avoid this message :confused: (6 Replies)
Discussion started by: NIMISH AGARWAL
6 Replies

10. Shell Programming and Scripting

redefine warning(Eval) in perl

Here is my perl Program: #!/usr/bin/perl -w my $a="sam"; my $b="ste"; my $c="abcdef"; my $d=931; $str=" @<<<<< @>>>>>>>>>> @|||||||||||||||||||| @######### \$a,\$b,\$c,\$d ."; open(FILE,">abc.txt"); $temp="format FILE = $str"; eval $temp; write FILE; print FILE "\n\n"; (3 Replies)
Discussion started by: sameerstephen
3 Replies
Login or Register to Ask a Question