Problem with perl ~ tr///


 
Thread Tools Search this Thread
Top Forums Programming Problem with perl ~ tr///
# 1  
Old 10-06-2009
Problem with perl ~ tr///

I am trying to run the following script which is a file format converter. The frame variable in the input file has a file of 3,2,1 which needs to be 0,1,2 respectively i.e. 3 =0 etc.
I have included the tr/// function into the script to do this, however it does not seem to be working
input its
orf00002 111 974 +3 2.94
and output should be
orf00002 Glimmer3 CDS 111 974 2 + 0 note "Glimmer3 prediction" ; colour 3

However, the output is actually

orf00002 Glimmer3 CDS 111 974 2 + 18446744073709551614 note "Glimmer3 prediction" ; colour 3

I would appreciate any help as i just can't see the problem. The script does exactly what it is supposed to do without the tr/// function but with the wrong values for the frame variable

thanks in advance and the script is included below

Brian
Code:
#!/usr/bin/perl -w

while (<>) {
    /(\S+)\s+(\d+)\s+(\d+)\s+([\/+\-])(\d)\s+(\d+)/;    
    $header = $1;
    $start = $2;
    $stop = $3;
    $strand = $4;
    $frame = $5;
    $frame = ~ tr/321/012/; 
    $score = $6;
    if ($strand eq "+"){
        print "$header\tGlimmer3\tCDS\t$start\t$stop\t$score\t$strand\t$frame\tnote \"Glimmer3 prediction\" ; colour 3\n";
    }elsif ($strand eq "-"){
        print "$header\tGlimmer3\tCDS\t$stop\t$start\t$score\t$strand\t$frame\tnote \"Glimmer3 prediction\" ; colour 3\n";
    }
}


Last edited by pludi; 10-06-2009 at 06:26 AM.. Reason: code tags please....
# 2  
Old 10-06-2009
Your problem is this line:
Code:
$frame = ~ tr/321/012/;

It will take the number of transformations done by tr (0), invert it bitwise, and assign it to $frame. What you want is:
Code:
$frame =~ tr/321/012/;

Remember, when hunting bugs, these four lines can save you a lot of time:
Code:
#!/usr/bin/perl -w
use strict;
use warnings;
use diagnostics;

# 3  
Old 10-06-2009
thanks Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl eval problem

Hello All, I am trying to use perl eval in a complex code and below given is a pseudo code of my logic. Here $result evalutes to empty. Please help.How should I retrieve of $t where $f just hold the name of varaible i.e t $t=10; $f='$t'; $result=eval "\$$f"; print "$result\n"; (3 Replies)
Discussion started by: prasperl
3 Replies

2. Web Development

problem with exporting vairable from one perl cgi to another perl cgi script while redirecting.

Can anyone tell me how to export a variable from one perl CGI script to another perl cgi script when using a redirect. Upon running the login.pl the user is prompted to enter user name and password. Upon entering the correct credentials (admin/admin) the user is redirected to welcome page. My... (3 Replies)
Discussion started by: Arun_Linux
3 Replies

3. Shell Programming and Scripting

queue problem perl

Hi, I have implement queue but it take last element instead of fist element #!/usr/bin/perl -w print "Enter page Access"; chomp ($item = <STDIN>); my @queue = split /\s+/, $item; print "Enter a page frame"; $frame = <STDIN>; if ( $frame >= 3 ) { $fifo = pop @queue; print... (1 Reply)
Discussion started by: guidely
1 Replies

4. Shell Programming and Scripting

Problem with perl openssh

hello, can anyone help me with this problem? im just a beginner and currently starting to program in perl, also i just installed openssh because what i really need is to ssh to a ubuntu server. so I tried my code: #!/usr/bin/perl use strict; use warnings; use Net::OpenSHH; my $ssh =... (4 Replies)
Discussion started by: samohung390
4 Replies

5. Shell Programming and Scripting

Execution problem with perl

I got the below error when using the below code...it seem that perl interpret the "'" in the middle and therefore the pipe is not finished. perl -wle ' @a=`who| perl -wlane 'print \$F;' | sort -u` ; chomp @a ; print @a; ' the error message in cygwin is:- perl: No match. | sort... (12 Replies)
Discussion started by: ahmad.diab
12 Replies

6. Shell Programming and Scripting

Perl- matrix problem

A C G T - A 5 -4 -4 -4 -5 C -4 5 -4 -4 -5 G -4 -4 5 -4 -5 T -4 -4 -4 5 -5 - -5 -5 -5 -5 0 So lets say I have a matrix which looks something like (above). Its basically a scoring matrix. the numbers are... (2 Replies)
Discussion started by: aj05
2 Replies

7. Shell Programming and Scripting

grep problem in perl

Hi, I'm writing one perl script to select only a number part from a line. These lines looks as: raj born on 20080201 at delhi result for the equation is (886005) peter get married on 20031230 Maria born on 20080201 at paris my output file should only contains the numbers, by removing... (1 Reply)
Discussion started by: Lokesha
1 Replies

8. Shell Programming and Scripting

Problem with if statement in perl

if (($fields eq $hwp) && ($fields eq 'Y')) { $fields = "INTEGRAL"; } elsif ($fields eq $hwp) { $fields = "INTEGRAL"; } elsif ($fields ne $hwp) { $fields = "SEPARATE"; } print "$fields $fields $fields\n"; Output: The problem here is that the first... (2 Replies)
Discussion started by: kamitsin
2 Replies

9. Shell Programming and Scripting

problem with perl

hi, i have a script that coverts the file time in epoch time.but the problem is perl is not working inside the k-shell ---------------------------------------------------------------- #!/bin/ksh echo "Enter the file" read n perl -e 'print ((stat("n")))'... (6 Replies)
Discussion started by: ali560045
6 Replies

10. Shell Programming and Scripting

Perl problem

I have been recently given a PERL script to develop, but the main problem is that the perl version that I have to use is old, also I cant download modules from CPAN. Perl version 5.0005 I didnt realise this untill I had the script ready to be tested, so there are a few modules that I have... (6 Replies)
Discussion started by: meevagh
6 Replies
Login or Register to Ask a Question