perl -write values in a file to @array in perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl -write values in a file to @array in perl
# 22  
Old 06-02-2009
By running the code you can see there is a difference between the two.

\w is the same as [:word:] which is the same as: a-zA-Z0-9_
[:alpha:] matches only letters a-zA-Z for which perl has no equivalent shortcut character class.
# 23  
Old 06-03-2009
so how do I trap entries with alphanum??

We can trap colums with alpha [:alpha;], numeric \d... So how can we trap colums with alphanum without catching everything?

if ($_ =~ /^[[:alpha:]]+$/) {
push @stringArray, $_;
} elsif ($_ =~ /^\d+$/) {
push @intArray, $_;
} elsif ($_ =~ /^??????+$/) {
push @alphnumArray, $_;

/r
Rick
# 24  
Old 06-03-2009
Quote:
Originally Posted by schultz2146
...
So how can we trap colums with alphanum without catching everything?
...
With the [:alnum:] POSIX character class.

tyler_durden
# 25  
Old 06-03-2009
Code:
@arr=<DATA>;
map {s/\n//} @arr;
print join ",", @arr;
__DATA__
19
20
21
22
40

# 26  
Old 06-07-2009
So if below works on a single column datafile of
Apple
B34
Cat
112
245
356

Outputs to screen:
112 Apple
245 B34
356 Cat

open(FILE, "<", "dataFile");
while(<FILE>) {
chomp;
if ($_ =~ /^[[:digit:]]+$/) {
push @intArray, $_;
} elsif (($_ =~ /^[[:alpha:]]+$/)||($_ =~ /^[[:alnum:]]+$/)) {
push @stringArray, $_;
}
}
close(FILE);
$lengthArray=@intArray;
for($i=0; $i<$lengthArray; $i++) {
print"\n$intArray[$i] $stringArray[$i] ";
}



How can I take a datafile that has a special character and have mult arrays. First array catches everything before the special character “$” and the second array catches everything after the special character?

Abc is good for me $4.55
Def might not be enough $5.66
Ghi price to play $6.77

/r
Rick
# 27  
Old 06-07-2009
Quote:
Originally Posted by schultz2146
...
How can I take a datafile that has a special character and have mult arrays. First array catches everything before the special character “$” and the second array catches everything after the special character?

Abc is good for me $4.55
Def might not be enough $5.66
Ghi price to play $6.77

...
Code:
$
$ cat data.txt
Abc is good for me $4.55
Def might not be enough $5.66
Ghi price to play $6.77
$
$ perl -ne 'chomp; split /\$/; push @a1,$_[0]; push @a2,$_[1]; END{foreach $i(@a1){print $i,"\n"} foreach $i(@a2){print $i,"\n"}}' data.txt
Abc is good for me
Def might not be enough
Ghi price to play
4.55
5.66
6.77
$
$

tyler_durden
# 28  
Old 06-07-2009
In script form:

Code:
my @before;
my @after;
open(FILE, "<", "dataFile");
while(<FILE>) {
   chomp;
   my ($before, $after) = split(/\$/);
   push @before, $before;
   push @after, $after;
}

for my $i (0 .. $#before) {
   print "$before[$i] $after[$i]\n";
}

Assumes all lines have the '$' character in them, if not, adjust accordingly.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl next if @array (exclude a list of values)

I'm trying to exlude a list of values with perl to process while reading in a file. Is there a way to use the next if with a list? Example: @array = qw(val1 val2 val3 val6); while (<>) { next if $_ =~ @array; # values I don't want to process here print; # process the rest here }... (8 Replies)
Discussion started by: timj123
8 Replies

2. Shell Programming and Scripting

Perl : Assigning multile hash values to a single array

I know that @food = %fruit; Works. But how do I assign %fruit and %veggies to @food ? (2 Replies)
Discussion started by: popeye
2 Replies

3. Shell Programming and Scripting

Perl :: reading values from Data Dumper reference in Perl

Hi all, I have written a perl code and stored the data into Data structure using Data::Dumper module. But not sure how to retreive the data from the Data::Dumper. Eg. Based on the key value( Here CRYPTO-6-IKMP_MODE_FAILURE I should be able to access the internal hash elements(keys) ... (1 Reply)
Discussion started by: scriptscript
1 Replies

4. UNIX for Advanced & Expert Users

Search and replace a array values in perl

Hi, i want to search and replace array values by using perl perl -pi -e "s/${d$i]}/${b$j]}" *.xml i am using while loop for the same. if i excute this,it shows "Substitution replacement not terminated at -e line 1.". please tell me what's wrong this line (1 Reply)
Discussion started by: arindam guha
1 Replies

5. 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

6. Shell Programming and Scripting

PERL : Read an array and write to another array with intial string pattern checks

I have an array and two variables as below, I need to check if $datevar is present in $filename. If so, i need to replace $filename with the values in the array. I need the output inside an ARRAY How can this be done. Any help will be appreciated. Thanks in advance. (2 Replies)
Discussion started by: irudayaraj
2 Replies

7. Shell Programming and Scripting

How to map the values of an array in perl?

Hi, I have 2 arrays: @names=qw(amith veena chaitra); @files=qw(file.txt file1.txt file3.txt); There is one to one relationship between names and files. There needs to be mapping created between names and files. The output should be like this: amith --> file.txt veena --->... (3 Replies)
Discussion started by: vanitham
3 Replies

8. Shell Programming and Scripting

Greping array values in Bash like Perl

Hi, Is there an easy way to simulate following Perl code in Bash. if ( grep {$my_value eq $_} @ARGV ){ print "Do Something\n"; } else { die "Invalid value"; } (0 Replies)
Discussion started by: paragkalra
0 Replies

9. Shell Programming and Scripting

[Perl] Accessing array elements within a sed command in Perl script

I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows: $count = 0; while ( $count < $#test ) { `sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`; `cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies

10. Shell Programming and Scripting

perl: Assigning array values..

I have to add a variable value to an array, something like this: ...... @my_array_name = $value_of_this_variable; This doesnt seem to work, any ideas why? Thanks! (4 Replies)
Discussion started by: looza
4 Replies
Login or Register to Ask a Question

Featured Tech Videos