Sponsored Content
Top Forums Shell Programming and Scripting [Perl] Accessing array elements within a sed command in Perl script Post 302242996 by otheus on Friday 3rd of October 2008 10:51:25 AM
Old 10-03-2008
First, why would you use such a sed script within Perl? But whatever. Second, the second back-ticked command, while functionally correct, is not as good or as clear as:
Code:
rename(0, ${test[$count]});

Third, the last one in the array never gets converted. That's because $#test is the last index in the array of @test, and you're telling the while loop to stop before count is equal to this.

Now to your actual question. I dont know. This worked when I ran sample code and on the files (except for the last). However, better code would be as follows:

Code:
for (@test)
{
        system("sed -i -e 's/BIOGRF  321/BIOGRF  332/g' $_");
}

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl - New line in array elements

Hello, I have a comma delimited input feed file. The first field has directory location and the second field has file name. Ex of input feed: /export/appl/a,abc*.dat /export/appl/b,xyz*.dat /export/appl/c,pmn*.dat Under each directory, there would be many files like... . . .... (4 Replies)
Discussion started by: bperl
4 Replies

2. Shell Programming and Scripting

Accessing single elements of a awk array in END

How do I access one of the indices in array tst with the code below? tst=sprintf("%5.2f",Car / 12) When I scan thru the array with for ( i in tst ) { print i,tst } I get the output of: vec-7 144 But when I try this in the END print tst It looks like it's not set. What am... (6 Replies)
Discussion started by: timj123
6 Replies

3. Shell Programming and Scripting

Accessing array elements

Hi, My doubt is how to access array elements.. Situation is as below: #!/bin/ksh set -x typeset -i x=0 typeset -i y=0 typeset -i BID=0 typeset -i count=0 while ] ; do x=`expr $x + 1`; hwmgr show scsi > scsi.tmp while read line; do set... (1 Reply)
Discussion started by: mansa
1 Replies

4. Shell Programming and Scripting

Perl:Use of array elements in pattern matching

I need to use array elements while pattern matching. @myarr = (ELEM1, ELEM2, ELEM3); following is the statement which I am using in my code. Basically I want to replace the ELEM1/2/3 with other thing which is mentioned as REPL here. if (condition) { s/(ELEM1|ELEM2|ELEM3): REPL: /; } I... (3 Replies)
Discussion started by: deo_kaustubh
3 Replies

5. Shell Programming and Scripting

sed command in perl script

What is wrong with this line in a perl script? $amc_data = `sed -n '/\/,/\/p' "$config_file"` I ran the above from command line and it works fine from unix command prompt. The code should produce output between the and tags. The config_file is as follows: Sun ... (2 Replies)
Discussion started by: som.nitk
2 Replies

6. Shell Programming and Scripting

Perl Array Elements Replacement

Hello, I have the following perl array: @longname = (Fasthernet0/0 Fasthernet0/1 Serial0/1/0 Serial0/2/1 Tunnel55 Tunnel77) with the followinh array: @shortname = (Fa0/0 Fa0/1 Se0/1/0 Se0/2/1 Tu55 Tu77) in other words, I need to remove the following from each element in the array... (4 Replies)
Discussion started by: ahmed_zaher
4 Replies

7. Shell Programming and Scripting

Problem accessing array elements

Hi all, I can’t resolve an array element access issue on (Linux/pdksh) .. So I’m positing for advice.By the way - a friend demonstrated to me - same script works as expected under Solaris. I have been working on a documentation project where many *.jpg screen shots are used in the... (4 Replies)
Discussion started by: njdpo
4 Replies

8. Shell Programming and Scripting

HELP on Perl array / sorting - trying to convert Korn Shell Script to Perl

Hi all, Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM. Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers. At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies

9. Shell Programming and Scripting

Array elements comparison using perl

Experts, I am looking to compare elements of 2 array using perl. Below is not the actual code but logic wise something like this. my $version = "MYSQlcl-5.2.4-264.x86_64"; <-- split this word into array as (5 2 4 264) ( which is to extract only the version number from the package name) my... (1 Reply)
Discussion started by: solaix14
1 Replies

10. Shell Programming and Scripting

Storing the Linux command output to an array in perl script

Hi I am trying to store the output of a command into an array in perl script. I am able to store but the problem is i am unable to print the array line with one line space. i mean i inserted the \n in loop ...but not getting the result. I have written like this #!/usr/bin/perl @a =... (2 Replies)
Discussion started by: kumar85shiv
2 Replies
Padre::Document::Perl::Beginner(3pm)			User Contributed Perl Documentation		      Padre::Document::Perl::Beginner(3pm)

NAME
Padre::Document::Perl::Beginner - naive implementation of some beginner specific error checking SYNOPSIS
use Padre::Document::Perl::Beginner; my $beginner = Padre::Document::Perl::Beginner->new; if (not $beginner->check($data)) { warn $beginner->error; } DESCRIPTION
This is a naive implementation. It needs to be replaced by one using PPI. In Perl 5 there are lots of pitfalls the unaware, especially the beginner can easily fall in. While some might expect the Perl compiler itself would catch those it does not (yet ?) do it. So we took the initiative and added a beginners mode to Padre in which these extra issues are checked. Some are real problems that would trigger an error anyway we just make them a special case with a more specific error message. (e.g. "use warning;" without the trailing s) Others are valid code that can be useful in the hands of a master but that are poisonous when written by mistake by someone who does not understand them. (e.g. "if ($x = /value/) { }" ). This module provides a method called "check" that can check a Perl script (provided as parameter as a single string) and recognize problematic code. Examples See <http://padre.perlide.org/ticket/52> and <http://www.perlmonks.org/?node_id=728569> Cases o split /,/, @data; Here @data is in scalar context returning the number of elements. Spotted in this form: split /,/, @ARGV; o use warning; s is missing at the end. o map { $_; } (@items),$extra_item; is the same as map { $_; } (@items,$extra_item); but you usually want (map { $_; } (@items)),$extra_item; which means: map all @items and them add $extra_item without mapping it. o Warn about Perl-standard package names being reused package DB; o $x = chomp $y; print chomp $y; o map { s/foo/bar/; } (@items); This returns an array containing true or false values (s/// - return value). Use map { s/foo/bar/; $_; } (@items); to actually change the array via s///. o <@X> o if ($x = /bla/) { } o Pipe | in open() not at the end or the beginning. o open($ph, "| something |"); o Regular expression starting with a quantifier such as /+.../ o } else if { o } elseif { o close; HOW TO ADD ANOTHER ONE
Please feel free to add as many checks as you like. This is done in three steps: Add the test Add one (or more) tests for this case to t/75-perl-beginner.t The test should be successful when your supplied sample fails the check and returns the correct error message. As texts of error messages may change, try to match a good part which allows identification of the message but don't match the very exact text. Tests could use either one-liners written as strings within the test file or external support files. There are samples for both ways in the test script. Add the check Add the check to the check-sub of this file (Document/Perl/Beginner.pm). There are plenty samples here. Remember to add a sample (and maybe short description) what would fail the test. Run the test script to match your test case(s) to the new check. Add the configuration option Go to Config.pm, look for the beginner error checks configuration and add a new setting for your new check there. It defaults to 1 (run the check), but a user could turn it off by setting this to 0 within the Padre configuration file. COPYRIGHT &; LICENSE Copyright 2008-2012 The Padre development team as listed in Padre.pm. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.14.2 2012-06-27 Padre::Document::Perl::Beginner(3pm)
All times are GMT -4. The time now is 09:29 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy