in reply to Problem with inserting data into MongoDB

"What is the problem????"

Scoping. $sqi is defined in an if statement (within a for loop), and you expect to use it outside of this. See your previous question usage of "my" keyword. use strict; would have caught this, among other problems:

Global symbol "$sqi" requires explicit package name at mongodb.pl line + 42.

Also Coping with Scoping.

Update: slight rewording

Replies are listed 'Best First'.
Re^2: Problem with inserting data into MongoDB
by ravi45722 (Pilgrim) on Aug 14, 2015 at 12:30 UTC
    #!/usr/bin/perl # use strict; use warnings; use MongoDB; use MongoDB::OID; use Spreadsheet::ParseExcel; use Spreadsheet::XLSX; use Spreadsheet::Read; use Tie::IxHash; my $date=$ARGV[0]; $date or $date=`date --date='1 day ago' +%d-%m-%Y`; chomp $date; my $file_path="/root/prac/packages/SDP_VAS_NQI-17-06-2015.xlsx"; my $workbook = ReadData($file_path,cells => 0 ); if(defined $workbook->[0]{'error'}) { print "Error occurred while processing $file_path:".$workbook->[0] +{'error'}."\n"; exit(-1); } my $worksheet = $workbook->[1]; my $max_rows = $worksheet->{'maxrow'}; my $sqi; my $cell_data=0; for my $row_num (15..($max_rows)) { $cell_data = $worksheet->{cell}[2][$row_num]; # same, unformatted if($date eq $cell_data) { $sqi = $worksheet->{cell}[23][$row_num]; # same, unformatted print "$sqi\n"; print "$cell_data\n"; print "$row_num\n"; } } my $db_host="172.16.15.115"; my $db_name="ravi"; my $client = MongoDB::MongoClient->new(host => $db_host, port => 2 +7017); my $database = $client->get_database( $db_name ); my $data = $database->get_collection("SDP_SQI"); my %insert_data_hourly=(); $insert_data_hourly{'date'}=$cell_data; $insert_data_hourly{'SQI'}=$sqi; my $id=$data->insert(\%insert_data_hourly);

    I updated as you guided. But it showing a repeated warning

     Use of uninitialized value $cell_data in string eq at ./excel_read.pl line 32.

    Its nearly repeating 35 to 40 times. Whats behind in it

      Have you looked at line 32 in your code? What happens there? Have you inspected the values that are used on that line? What is in them? Perl comes with documentation for all its warnings in warnings. Maybe you should read them.

      What does the message say? $cell_data is uninitialized. The assignment immediately preceding it is not finding a value. Perhaps those cells are empty?

      Dum Spiro Spero