Sponsored Content
Full Discussion: Perl text file
Top Forums Shell Programming and Scripting Perl text file Post 42610 by Optimus_P on Friday 31st of October 2003 10:06:18 AM
Old 10-31-2003
take a look at a DBI script i wrote when i was playing with DBI

Code:
#!/usr/bin/perl
#
# OBJECTIVE:
# 1) Get the OMS # from the 944.
# 2) Get the SKU/LOT/ACTUAL QUANITY from the DB
# 3) insert those 3 things into the 944
#

use DBI;

$FILE='Q206.944';
$COUNT=0;

open (FILE944, "$FILE") or die "Can not read file ($!)";
open (FILEOUT, ">outme") or die "Can not write file ($!)";

while (<FILE944>) {
        chomp;  # remove end of line
        if ($_ =~ /^03/) {
                $doc_code=substr($_,39,9); # grab the doc_code number from the 03 segment

                #OMS PROD
                my $dbh = DBI->connect( 'dbi:Informix:standard@prod', 'USER', 'PASS', {
                        PrintError=>1,
                        RaiseError=>1 });

                $sth = $dbh->prepare("
                        SELECT prod_code, lot_code, actual_qty
                        FROM wattrn
                        WHERE doc_code = ? ");  # get all of my needed information from the DB
                $sth->execute($doc_code);

                while ( $array_ref = $sth->fetchrow_arrayref ) {        #feed the return results to an array
                        push @jackpot, [ @$array_ref ];
                }
                $dbh->disconnect();
        print FILEOUT "$_\n";   #print out the current line to the new file.

        }
        elsif ($_ =~ /^30/ ) {
                $prod=pack A20, $jackpot[$COUNT][0];    #set the proper space needed for the prod_code
                $lot =pack A30, $jackpot[$COUNT][1];    #set the proper space needed for the log_code
                substr($_,10,50)="${prod}${lot}";       #insert the DB info into the file in the 30 segment
                print FILEOUT "$_\n";
        }
        elsif ($_ =~ /^33/ ) {
                $pad="         $jackpot[$COUNT][2].00"; #makeup for provias mistakes
                $aqty=pack A12, substr($pad,-12,12) ;   #packit up for the proper space for actual_qty
                substr($_,92,12)="${aqty}";
                print FILEOUT "$_\n";
        $COUNT++;       #incroment the counter to step up to the next set of values for the 30 and 33 segments.
        }
        else {
        print FILEOUT "$_\n";
        }

}

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

PERL:print 32 variables into a text file

okay, down below is the script. i have 32 words put into 32 variables and i want perl to print all those 32 variables into one text document, each word under another in the text file. the text files called times.txt Sorry about the length of the script print " VToshiba ... (2 Replies)
Discussion started by: perleo
2 Replies

2. Shell Programming and Scripting

text file formatting by perl

have a simple text file as input.i have to print that file in paragraph format.whenevr it finds "\n" in the input text it should start printing in next paragraph in output file.also a fixed amount of space should be given before start writing in every paragraph. the input and output file format... (5 Replies)
Discussion started by: avik1983
5 Replies

3. Shell Programming and Scripting

Perl Sort on Text File

Hi, I have a file of names and I want perl to do a sort on this file. How can I sort this list of names using perl? I'm thinking of a command like: @sorted = sort { lc($a) cmp lc($b) } @not_sorted # alphabetical sort The only thing I'm sort of unsure of is, how would I get the name in my... (6 Replies)
Discussion started by: eltinator
6 Replies

4. Shell Programming and Scripting

Convert XML file into TEXT file using PERL seript

Dear Yogesh..."Convert XML file into TEXT file using PERL seript"... can u help me regarding this issue...plz Thanks Rudro (0 Replies)
Discussion started by: Rudro
0 Replies

5. Shell Programming and Scripting

Perl - Enter text in a file in a place.

Hi, I have a simple question: I need to enter some text in a text file at a certain place via perl. I would first need to find that specific text in the file and then I would like to insert a line after that particular line. Say I have this text file: I am a great Perl Programmer I... (1 Reply)
Discussion started by: som.nitk
1 Replies

6. Shell Programming and Scripting

Perl Split for text in file

Hi all I have written Perl script to swap the strings in the second a third column from a text file. My input file format is : the|empty|the|det lake|empty|lake|conj_and was|empty|was|auxpass drained|empty|drained|conj_and birds|empty|bird|s|nn The expected output file format is... (11 Replies)
Discussion started by: my_Perl
11 Replies

7. UNIX for Dummies Questions & Answers

SOLVED: Text file compare using perl

I have two text file.... One text file contain in this format...... keyvalue.txt \SUM\SUM_cam.c \SUM\SUM_cam.h \SUM\SUM_command.c \SUM\SUM_command.h \SUM\SUM_dab.c \SUM\SUM_dmb.c \SUM\SUM_eventHandler.h \SUM\SUM_eventHandler_dab.c \SUM\SUM_eventHandler_dmb.c ... (6 Replies)
Discussion started by: suvenduperl
6 Replies

8. UNIX for Advanced & Expert Users

perl text file processing using hash

Hi Experts, I have this requirement to process large files (200MB+).Format of files is like: recordstart val1 1 val2 2 val3 4 recordstart val1 5 val2 6 val3 1 val4 1 recordstart val1 ... (4 Replies)
Discussion started by: mtomar
4 Replies

9. Shell Programming and Scripting

shell or perl script needed for ldif file to text file conversion

This is the ldf file dn: sdcsmsisdn=1000000049,sdcsDatabase=subscriberCache,dc=example,dc=com objectClass: sdcsSubscriber objectClass: top postalCode: 29600 sdcsServiceLevel: 10 sdcsCustomerType: 14 givenName: Adelia sdcsBlackListAll: FALSE sdcsOwnerType: T-Mobile sn: Actionteam... (1 Reply)
Discussion started by: LinuxFriend
1 Replies

10. Shell Programming and Scripting

Help with creating a text file in perl with file creation date.

Hi, I am quite new to Perl scripting and i need to create a .TXT file using perl, with fields (A,B,C,D,E), and this text file should be named with current file creation date "XYZ_CCYYMMDD.TXT" (i.e.XYZ_2011042514:33 PM). Can anyone who has done this, please share their expertise on this... (5 Replies)
Discussion started by: msrahman
5 Replies
DBIx::Simple::Comparison(3)				User Contributed Perl Documentation			       DBIx::Simple::Comparison(3)

NAME
DBIx::Simple::Comparison - DBIx::Simple in DBI jargon DESCRIPTION
This is just a simple and inaccurate overview of what DBI things the DBIx::Simple things represent, or the other way around. This document can be useful to find the foo equivalent of bar. "?" means that DBI doesn't have an equivalent or that I couldn't find one. "=" means that DBIx::Simple provides a direct wrapper to the DBI function. "~" means that DBIx::Simple's method does more or less the same, but usually in a more high level way: context sensitive, combining things, automatically taking care of something. Note that DBIx::Simple is a wrapper around DBI. It is not "better" than DBI. In fact, DBIx::Simple cannot work without DBI. Using DBI directly is always faster than using DBIx::Simple's equivalents. (For the computer, that is. For you, DBIx::Simple is supposed to be faster.) Classes, common names use DBI ~ use DBIx::Simple $DBI::errstr = DBIx::Simple->error DBI::db ~ DBIx::Simple $dbh ~ $db $dbh->errstr = $db->error connect ~ connect connect ~ new DBI::st ~ DBIx::Simple::Result <undef> ~ DBIx::Simple::Dummy $sth ~ $result Queries DBI my $sth = $dbh->prepare_cached($query); $sth->execute(@values); ~ DBIx::Simple my $result = $db->query($query, $values); Results DBI DBIx::Simple bind_columns ~ bind fetchrow_arrayref/fetch = fetch fetchrow_array ~ list *1 ~ flat [@{fetchrow_arrayref}] = array fetchall_arrayref ~ arrays fetchrow_hashref() *2*3 = hash fetchall_arrayref({}) *4 ~ hashes fetchall_hashref *2 = map_hashes ? ? map_arrays fetchall_hashref(1) *2 = map $sth->{NAME_lc/NAME} = $result->columns *1 There's no fetch variant, but you can do "{ @{ $dbh->selectcol_arrayref('SELECT ...', { Slice => [] }) } }". *2 To receive the keys (column names) lowercased, use "$db->{FetchHashKeyName} = 'NAME_lc'". DBIx::Simple lower cases them by default. *3 Or supply an argument, 'NAME_lc'. *4 No, arrayref isn't a typo. When supplied an empty hash reference, DBI's fetchall_arrayref actually returns hashrefs. This DBI method does not support lower casing of keys, DBIx::Simple does. Direct access DBI DBIx::Simple $dbh = $db->dbh $sth->{$foo} = $result->attr($foo) func = func begin_work = begin_work commit = commit rollback = rollback last_insert_id = last_insert_id rows = rows disconnect ~ disconnect finish ~ finish DBIx::Simple specific (?) keep_statements lc_columns iquery (via SQL::Interp) select, insert, update, delete (via SQL::Abstract) abstract (via SQL::Abstract) flat hashes map_arrays map AUTHOR
Juerd Waalboer <juerd@cpan.org> <http://juerd.nl/> SEE ALSO
DBI, DBIx::Simple perl v5.16.3 2010-12-03 DBIx::Simple::Comparison(3)
All times are GMT -4. The time now is 06:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy