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
# 15  
Old 12-19-2008
Quote:
Originally Posted by jatanig
$\="\n";
open ( FH,">jas");
print FH '$count';
print FH '$last';
close(FH);
I guess if someone literally wants to print $count and $last to a file your code will work. Smilie
# 16  
Old 12-22-2008
Quote:
Originally Posted by KevinADC
I guess if someone literally wants to print $count and $last to a file your code will work. Smilie


If u want to get the literally value of $count and $last, then use double codes (" ") instead of single codes (' ') in code.
# 17  
Old 02-21-2009
Hi Meghana,

use a line-break "\n" in your print statements ;-)

~sudhir
# 18  
Old 02-22-2009
Someone should lock this year old thread, for some reason it attracts attention.
# 19  
Old 06-02-2009
perl -write num array and string array from dataFile

Locking this thread would be a travesty.. Newbies like myself need these strings of information to help elevate us to a higher level of understanding of a lang seasoned programmers take for granted.

This is my first post to unix.com.. a true newbie.

++++++

From what I have read through this string I have been able to read in a file to an array and print it back to console.

open(FILE, "<", "dataFile");
my @dataValues=<FILE>;
close(FILE);
print("\n@dataValues");

What I would like to do now is take a data file

AAA
BBB
CCC
1
2
3

and read strings into @stringArray and read the int into @intArray. Should be simple.. just have not been able to figure it out..

/r
Rick
# 20  
Old 06-02-2009
Quote:
Originally Posted by schultz2146
...
What I would like to do now is take a data file

AAA
BBB
CCC
1
2
3

and read strings into @stringArray and read the int into @intArray.
...
Here's one way to do it:

Code:
$
$ cat -n datafile
     1  AAA
     2  BBB
     3  CCC
     4  1
     5  2
     6  3
     7  xYz
     8
     9  456
    10  abc12de
    11  xyz~!lm.&
$
$
$ cat testarray.pl
#!perl -w
open(FILE, "<datafile");
while (<FILE>) {
  chomp;
  if ($_ =~ /^[[:alpha:]]+$/) {
    push @stringArray, $_;
  } elsif ($_ =~ /^\d+$/) {
    push @intArray, $_;
  }
}
close(FILE);
print("\nString Array ===> @stringArray");
print("\nInt Array    ===> @intArray");
print("\n");
$
$
$ perl testarray.pl
String Array ===> AAA BBB CCC xYz
Int Array    ===> 1 2 3 456
$
$

Note:
- Due to the "+" quantifier, the regexes look for at least one character/digit. Hence line no. 8 was left out.
- The match is case-insensitive e.g. line no. 7
- The [:alpha:] POSIX character class does not match alphanumeric and special characters due to which lines 10 and 11 were left out.

Hope that helps,
tyler_durden
# 21  
Old 06-02-2009
got it to work.. but one more Q

#!/usr/bin/perl -w
open(FILE, ">", "dataFile");

while(<FILE>) {
chomp;
if ($_ =~ /^[[:alpha:]]+$/) {push @stringArray, $_; }

elsif ($_ =~ /^\d+$/) {push @intArray, $_;}
}

close(FILE);
$lengthArray=@intArray;
for($i=0; $i<$lengthArray; $i++) {print"\n$intArray[$i] $stringArray[$i]";}
print("\n");
exit 0

Using the code you provided I was able to see what needed to be done.. Thank you. However, I have a small question. To pull in the alpha char I was unable to use \w and went with what you had [[:alpha:]] otherwise I would pull in all entries.

So here is the question... what is the difference between \w and :alpha:

/r
Rick
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