perl : splitting the data into 2 different variables


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl : splitting the data into 2 different variables
# 1  
Old 09-26-2012
perl : splitting the data into 2 different variables

I have a perl variable which contains the below value.

$var1 = "2% / 51%"

Now I would like to split the data into 2 different variables.
For example

$part1 = 2
$part2 = 51

Could anyone please help me in this regard ?

Regards,
GS
# 2  
Old 09-26-2012
perl

Hi,
Try this one,

Code:
if($var =~ /^(\d+)%.*(\d +)%$/) {
   my ($part1, $part2)=($1,$2);
}

Cheers,
Ranga:-)
# 3  
Old 09-27-2012
Many thanks for replying over my post.
Tried the below code but no luck... black space was printed instead of expected 2 and 51.

Code:
$var1 = "2% / 51%";
if($var1 =~ /^(\d+)%.*(\d +)%$/) {
   my ($part1, $part2)=($1,$2);
}
print $part1;
print "\n";
print $part2;


Could you please help me on this?

---------- Post updated at 04:00 AM ---------- Previous update was at 03:30 AM ----------

Finally with minor changes... I had done with it .. Smilie

Code:
$var1 = "9% / 41%"; $z=0;
while($var1 =~ m/(\d+)/g) {
 $item[$z]=$1;
 $z++;
}
print $item[0];
print $item[1];

thanks alot rangarasan ...!!
# 4  
Old 09-27-2012
By declaring $part1 and $part2 as lexical variables within the if block, you've scoped them to that block. Hence, no values (undef) or values before that block, are printed outside the block. Remove my before the variables. This will make them global and the values will be accessible outside the if block.

Also, that regexp is not correct. The $2 value will always be a single digit.

Try:
Code:
my ($var1,$var2,$var3);
$var1 = "2% / 51%";
if($var1 =~ /^(\d+)%.*?(\d+)%$/) {
   ($part1, $part2)=($1,$2);
}
print $part1;
print "\n";
print $part2;


Last edited by elixir_sinari; 09-27-2012 at 06:13 AM..
# 5  
Old 09-27-2012
Quote:
$var1 = "2% / 51%" ;
($x,$y)=split /[\% \/]+/ ,$var1 ;
print "$x $y \n" ;
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

PERL: In a perl-scripttTrying to execute another perl-script that SETS SOME VARIABLES !

I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open()) I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies

2. Shell Programming and Scripting

Splitting CSV into variables then to XML file

I have a text file that looks like this: FIELD1, FIELD2, THIS IS FIELD3, FIELD4 FIELD1, FIELD2, THIS IS FIELD3, FIELD4 FIELD1, FIELD2, THIS IS FIELD3, FIELD4 I need it to turn it into an XML file to run against a custom application. My ultimate goal is for it to look like... (15 Replies)
Discussion started by: jeffs42885
15 Replies

3. Shell Programming and Scripting

Splitting a line in two variables

Hello. The file /etc/fstab contains UUID=957c3295-9944-1593-82e2-2b90dede4312 / ext4 acl,user_xattr 1 1I fill a variable SOME_LINE=$( cat /etc/fstab | grep \/\..*ext4 )I want PART1=>>>>>UUID=957c3295-9944-1593-82e2-2b90dede4312 / ext4 ... (2 Replies)
Discussion started by: jcdole
2 Replies

4. Shell Programming and Scripting

Splitting the Data using awk

Hello All, I have a comma delimiter file with 10 columns. I took the desired data but from $4 I need to split into two columns as 3+7 bytes. awk -F"," -v OFS=',' '{print $2,$3,$4}' foo.txt 42366,11/10/2014,5012418769 42366,11/10/2014,2046955672 42366,11/10/2014,2076802951 ... (3 Replies)
Discussion started by: karumudi7
3 Replies

5. UNIX for Dummies Questions & Answers

Splitting data into new records

Hi, My file is seperated with ";" delimiter, after 13 delimiter i want to put the data in new line... eg: My current file:- a;b;c;d;e;f;g;h;e;f;h;s;t;a;i;o;q;t;q;r;yu;f;sz;f;t;r........... i want o/p as:- a;b;c;d;e;f;g;h;e;f;h;s;t a;i;o;q;t;q;r;yu;f;sz;f;t;r How to achieve ths,... (2 Replies)
Discussion started by: gnnsprapa
2 Replies

6. Shell Programming and Scripting

Splitting the data in a column into several columns

Hi, I have the following input file 32895901-d17f-414c-ac93-3e7e0f5ec240 AND @GDF_INPUT 73b129e1-1fa9-4c0d-b95b-4682e5389612 AUS @GDF_INPUT 40f82e88-d1ff-4ce2-9b8e-d827ddb39447 BEL @GDF_INPUT 36e9c3f1-042a-43a4-a80e-4a3bc2513d01 BGR @GDF_INPUT I want to split column 3 into two columns:... (1 Reply)
Discussion started by: ramky79
1 Replies

7. UNIX for Dummies Questions & Answers

Splitting Data in File

I have a file with the below Data 1,nj@ny@pa@caa 2,ct 3,ca@vaa@txI want the output to be 1,nj 1,ny 1,pa 1,caa 2,ct 3,ca 3,vaa 3,tx I need to split the second column based on @ as delimiter The number of delimiters is unknown (4 Replies)
Discussion started by: traininfa
4 Replies

8. Shell Programming and Scripting

Data Splitting into two files from one file

I have a file as: I/P File: Ground Car 2009 Lib 2008 Lib 2003 Ground Car 2009 Ground Car 2003 Car 2005 Car 2003 Car 2005 Sita 2900 2006 Car 2007 I have to split the file into two: - one for names and second for years. O/p1 (Names): Ground Car (3 Replies)
Discussion started by: karumudi7
3 Replies

9. Shell Programming and Scripting

Splitting the data and storing it into 2 variables

Hi, I have a file in the given format: |aaa |hhh |fat hat chat |make sure I need to get store in a variable,say 'error' the value of the string 'fat hat chat' In short, echo $error should give the result fat hat chat Is this possible using awk? Also, can this be split.For... (10 Replies)
Discussion started by: jisha
10 Replies

10. Shell Programming and Scripting

Splitting data file

Hello, I'm trying to split a file by lines. I know that I can use the split command to do this, but the one problem I'm having is, each file created, the first line needs to be a header. I can use the split command the create another file with the header, then append the new split file to... (4 Replies)
Discussion started by: ctcuser
4 Replies
Login or Register to Ask a Question