Sponsored Content
Top Forums Shell Programming and Scripting perl - how come this script works? Post 302136329 by mjays on Monday 17th of September 2007 06:28:19 AM
Old 09-17-2007
perl - how come this script works?

Code:
#!/usr/bin/perl
open (DATA, file.txt);
@array = <DATA>;
close (DATA);

open (DATA, ">$file.txt");
for (@array) {
      s/text/replace text/;
      push(@contents,$_);
}
seek(DATA, 0, 0);
print DATA (@contents);

close(DATA);

could someone please explain how this works. i've been trying for awhile now to find out how to open a file, replace some text and then save the file. i eventually found the code above.

however, as far as i knew 'push' placed an item onto the end of an already defined array, but in the code above @contents isn't defined.

what's going on?

regards,

matt
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script works with bash 3.0 but not 3.2.

Hello, So my knowledge of bash scripting is not that great and I have been trying to solve this problem on my own for awhile to no avail. Here's the error I get when running it with an OS that uses bash 3.2.x: testagain.sh: line 10: *-1: syntax error: operand expected (error token is... (2 Replies)
Discussion started by: forkandspoon
2 Replies

2. Shell Programming and Scripting

perl oneliner not works .pl script

I am trying to take first 3 columns in a file which matches the word "abc", but i am getting the below error, <error> Global symbol "@F" requires explicit package name at ./new.pl </error> whereas when i give the below,grep abc /home/test/file.txt|perl -lane 'print \"$F $F $F\" in unix prompt... (4 Replies)
Discussion started by: anspks
4 Replies

3. Shell Programming and Scripting

perl/unix: script in command line works but not in perl

so in unix this command works works and shows me a list of directories find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt but when i try running a perl script to run this command my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies

4. Shell Programming and Scripting

Script works but doesn't?

Hi everyone I'm new here so and I'm just starting to learn a bit of Solaris and I'm working on repairing 10 year old scripts for our system here at work. When I execute the commands at my prompt everything go's through smooth. I'm using gedit to edit my code because I'm still getting used to the... (4 Replies)
Discussion started by: 82280zx
4 Replies

5. Shell Programming and Scripting

perl: Command works in terminal, but not in shell script

Hi, the following command works in the terminal no problem. samtools view -h rawlib.bam | perl -ne '{ @line = split( /\s+/ ); $match = 0; while( $line =~ /(\d+)M/g ) { $match = $match + $1 } if( $match >= 80 || $_ =~ /^\@/ ) { print $_ } }' | java -Xmx12G -jar... (8 Replies)
Discussion started by: jdilts
8 Replies

6. Shell Programming and Scripting

Script almost works... one error

Helo, i have written a bash script for running my calculations. anyway, according to shellcheck the error is somewhere in the while loop or in the if condition. so the idea of this script is: submit a job with a name. while it is in the queue it has a job ID number. after the job is done i... (2 Replies)
Discussion started by: carborane
2 Replies

7. Shell Programming and Scripting

Perl error in batch command but works one at a time

In the below perl executes if one file is processed perfect. However, when multiple files are processed in batch which is preferred I get the below error that I can not seem to fix it as the '' necessary for the command to execute, but seem to only work for one -arg option. Thank you :). ... (2 Replies)
Discussion started by: cmccabe
2 Replies

8. Shell Programming and Scripting

Need to understand how the line in perl program works as shell commend

I have a file with two line, one is header, the other actual value: TYPCD|ETID2|ETID|LEG ID|PTYP|PTYP SUB|TRD STATUS|CXL REASON|CACT|CACTNM|ENCD|ENC D NM|TRDR|ASDT|TRDT|MTDT|STDT|LS|SECID|SECID TYP|SECNM|PAR|STCC|MARKET PRICE|DIS MARKET PRICE|MARKET PRICE CURRENCY|SRC OF SETTLEMENT... (2 Replies)
Discussion started by: digioleg54
2 Replies

9. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

10. Shell Programming and Scripting

Script works, but I think it could be better and faster

Hi All, I'm new to the forum and to bash scripting. I did some stuff with VB.net, Batch, and VBScripting in the past, but because I shifted over to Linux, I am learning to script in Bash at this moment. So bear with me if I seem to script like a newbie, that's just because I am ;-) OK, I... (9 Replies)
Discussion started by: cornelvis
9 Replies
MYSQLI_SET_LOCAL_INFILE_HANDLER(3)					 1					MYSQLI_SET_LOCAL_INFILE_HANDLER(3)

mysqli::set_local_infile_handler - Set callback function for LOAD DATA LOCAL INFILE command

       Object oriented style

SYNOPSIS
bool mysqli::set_local_infile_handler (mysqli $link, callable $read_func) DESCRIPTION
Procedural style bool mysqli_set_local_infile_handler (mysqli $link, callable $read_func) Set callback function for LOAD DATA LOCAL INFILE command The callbacks task is to read input from the file specified in the LOAD DATA LOCAL INFILE and to reformat it into the format understood by LOAD DATA INFILE. The returned data needs to match the format specified in the LOAD DATA PARAMETERS
o $ link -Procedural style only: A link identifier returned by mysqli_connect(3) or mysqli_init(3) o $read_func - A callback function or object method taking the following parameters: o $stream -A PHP stream associated with the SQL commands INFILE o $&buffer -A string buffer to store the rewritten input into o $buflen -The maximum number of characters to be stored in the buffer o $&errormsg -If an error occurs you can store an error message in here The callback function should return the number of characters stored in the $buffer or a negative value if an error occurred. RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 mysqli::set_local_infile_handler example Object oriented style <?php $db = mysqli_init(); $db->real_connect("localhost","root","","test"); function callme($stream, &$buffer, $buflen, &$errmsg) { $buffer = fgets($stream); echo $buffer; // convert to upper case and replace "," delimiter with [TAB] $buffer = strtoupper(str_replace(",", " ", $buffer)); return strlen($buffer); } echo "Input: "; $db->set_local_infile_handler("callme"); $db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1"); $db->set_local_infile_default(); $res = $db->query("SELECT * FROM t1"); echo " Result: "; while ($row = $res->fetch_assoc()) { echo join(",", $row)." "; } ?> Procedural style <?php $db = mysqli_init(); mysqli_real_connect($db, "localhost","root","","test"); function callme($stream, &$buffer, $buflen, &$errmsg) { $buffer = fgets($stream); echo $buffer; // convert to upper case and replace "," delimiter with [TAB] $buffer = strtoupper(str_replace(",", " ", $buffer)); return strlen($buffer); } echo "Input: "; mysqli_set_local_infile_handler($db, "callme"); mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1"); mysqli_set_local_infile_default($db); $res = mysqli_query($db, "SELECT * FROM t1"); echo " Result: "; while ($row = mysqli_fetch_assoc($res)) { echo join(",", $row)." "; } ?> The above examples will output: Input: 23,foo 42,bar Output: 23,FOO 42,BAR SEE ALSO
mysqli_set_local_infile_default(3). PHP Documentation Group MYSQLI_SET_LOCAL_INFILE_HANDLER(3)
All times are GMT -4. The time now is 02:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy