Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

User Prompt in Perl

Posted on 2006-11-14
1
Medium Priority
?
397 Views
Last Modified: 2010-03-05
Hello everyone,

The code below does the funtion of trasnfer data from excel to MySQL server. the only issue is that whenever u this perl script it throws the dat onto the server. I would like to have a prompt appear on the screen asking user weather they like to send the data or not. If they say yes then it should proceed otherwise halt.

Thanks


use lib qw(../);
use Spreadsheet::ParseExcel;
my $oExcel = new Spreadsheet::ParseExcel;
sub PrnBook($);

#------------------
  use Mysql;
  use Data::Table;
  use DBI;

#------------------

#1.1 Normal Excel97




    # ---------------------------------
    # --------------------------------- ENTER FILENAME BELOW -------------------------------------------------
    # ---------------------------------
   
            my $oBook = $oExcel->Parse('uu.xls');
            
      # ---------------------------------
      # ---------------------------------
      # ---------------------------------      
            
            
            
            
PrnBook($oBook);


sub PrnBook($)
{

   
          $dbh = Mysql->connect("svv-db", "rap", "aahooja", "password");
          


    my($oBook) = @_;
    my($iR, $iC, $oWkS, $oWkC);
    my %LongerNames; #Create variable
    $LongerNames{'lai'}=2; #Use 2 letters from first name if last name is Lai
    $LongerNames{'wang'}=3; #Use 3 letters from first name if last name is wang      
    $LongerNames{'jiang'}=2; #Use 2 letters from first name if last name is jiang    


    print "=========================================\n";
    print "FILE  :", $oBook->{File} , "\n";
    print "COUNT :", $oBook->{SheetCount} , "\n";
    print "AUTHOR:", $oBook->{Author} , "\n";





    # ---------------------------------
    # --------------------------------- ENTER SHEET NUMBER BELOW (starting from 0) -------------------------------------------------
    # ---------------------------------

        $oWkS = $oBook->{Worksheet}[0];
       
         # ---------------------------------
      # ---------------------------------
      # ---------------------------------    
       
       
       
       
       
        print "--------- SHEET:", $oWkS->{Name}, "\n";
        for(my $iR = $oWkS->{MinRow} ;
                defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ; $iR++) {
                  
                  
           
            if ($oWkS-> {Cells}[$iR][0])
            {  
             
              if ($oWkS-> {Cells}[$iR][0]->Value)
              {    
                    #$oWkC = $oWkS->{Cells}[$iR][$i];
                #print $oWkC."\n";
                  

                  $q = "INSERT INTO `rap`.`raptable`(Day, Week, TaskID, Tab, Network, Activity, Task, Subtask, EtimeCode, ActualCategory, Work, Person, HoursWorked, Notes, Year, Month, DateModified) VALUES (";
                  for ($i = 0; $i<17; $i++)
                  {
                     if (!$oWkS->{Cells}[$iR][$i])
                     {      $q = $q."''";      }


                     elsif ($i==11)
                     {
                        $name = lc($oWkS->{Cells}[$iR][$i]->Value);
                        $ind = rindex ($name," ");
                        $last = substr($name,$ind+1);
                        $len =($LongerNames{$last} or 1); #use defined length, or 1 if not defined
                        $first = substr($name,0,$len);
                        print $first.$last."\n";
                        $q = $q."'".$first.$last."'";
                     }



                      elsif ($i==13)
                     {
                                    $notes = $oWkS->{Cells}[$iR][$i]->Value;
                                    $notes =~ s/'/\\'/g;
                                    $q = $q."'".$notes."'"
                     }
                                 
                    
                     else
                     {       $q = $q."'".$oWkS->{Cells}[$iR][$i]->Value."'";                  }
                     if ($i!=16)
                     {      $q = $q.", ";      }
                     else
                     {      $q = $q.")";      }

                  }


                  print $q."\n";
                  
          
               
               
               
                $dbh->query($q);





              }
            }

           
        }
 
}
0
Comment
Question by:Musaab1
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 48

Accepted Solution

by:
Tintin earned 2000 total points
ID: 17941715
print "Would you like to transfer the data (Y/N)? ";
chomp(my $ans = <STDIN>);
die "Transfer aborted\n" unless (lc($ans) eq 'y');
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

On Microsoft Windows, if  when you click or type the name of a .pl file, you get an error "is not recognized as an internal or external command, operable program or batch file", then this means you do not have the .pl file extension associated with …
Many time we need to work with multiple files all together. If its windows system then we can use some GUI based editor to accomplish our task. But what if you are on putty or have only CLI(Command Line Interface) as an option to  edit your files. I…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question