Sponsored Content
Top Forums Shell Programming and Scripting Finding unique values in a hash (Perl) Post 302758371 by elixir_sinari on Saturday 19th of January 2013 05:55:07 AM
Old 01-19-2013
One way:
Code:
#!/usr/bin/perl
use strict;
use warnings;

my %FINALcontigs = (
        'mira_rep_c765:119reads**', 'ctctactggaagactgac',
        'mira_rep_c7454:54reads**', 'atggatactgcgctgttgctaactactgga',
        'mira_rep_c6803:12reads**', 'atcgactggatgcagggttgtggtttcta',
        'mira_rep_c1661:6reads**', 'ctctactggaagactgac',
    );

my %seen_keys;

for my $ha_key (keys %FINALcontigs) {
 push @{$seen_keys{$FINALcontigs{$ha_key}}}, $ha_key
}

for my $ha_key (keys %seen_keys) {
 if(@{$seen_keys{$ha_key}} > 1) {
  print "\nDuplicate keys for value $ha_key:\n";
  print "$_\n" for (@{$seen_keys{$ha_key}});
 }
}

This User Gave Thanks to elixir_sinari For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

perl-extract data from hash values

Hello, I have parsed an xml file using perl to get the hash values and the output looks like this $VAR1 = { 'RT' => { 'List' => { 'String' => ... (1 Reply)
Discussion started by: userscript
1 Replies

2. Shell Programming and Scripting

Perl Hash:Can not keep hash data in the same order that it was inserted

Can Someone explain me why even using Tie::IxHash I can not get the output data in the same order that it was inserted? See code below. #!/usr/bin/perl use warnings; use Tie::IxHash; use strict; tie (my %programs, "Tie::IxHash"); while (my $line = <DATA>) { chomp $line; my(... (1 Reply)
Discussion started by: jgfcoimbra
1 Replies

3. Shell Programming and Scripting

Perl Data Structure - Non unique values

I have the perl data structure and what i need to do is find all values in @{$extractColumns{'2'}{'D'}} which are not there in @{$extractColumns{'2'}{'M'}} but seems like i need to put a flag somewhere and i messed up foreach my $order (keys %extractColumns) { foreach my $value... (2 Replies)
Discussion started by: dinjo_jo
2 Replies

4. Shell Programming and Scripting

perl hash - using a range as a hash key.

Hi, In Perl, is it possible to use a range of numbers with '..' as a key in a hash? Something in like: %hash = ( '768..1536' => '1G', '1537..2560' => '2G' ); That is, the range operation is evaluated, and all members of the range are... (3 Replies)
Discussion started by: dsw
3 Replies

5. Shell Programming and Scripting

AWK, Perl or Shell? Unique strings and their maximum values from 3 column data file

I have a file containing data like so: 2012-01-02 GREEN 4 2012-01-02 GREEN 6 2012-01-02 GREEN 7 2012-01-02 BLUE 4 2012-01-02 BLUE 3 2012-01-02 GREEN 4 2012-01-02 RED 4 2012-01-02 RED 8 2012-01-02 GREEN 4 2012-01-02 YELLOW 5 2012-01-02 YELLOW 2 I can't always predict what the... (4 Replies)
Discussion started by: rich@ardz
4 Replies

6. Shell Programming and Scripting

Sorting values of hash in ascending order using Perl

I want to sort values of a hash in ascending order. my %records; for my $value (sort values %records){print $value,"\n";} When I use the above code I get values in this order: 1,10,11,2,3,4,5,6,7,8,9. But, I need values in my output in this order: 1,2,3,4,5,6,7,8,9,10,11. Can Someone... (1 Reply)
Discussion started by: koneru_18
1 Replies

7. Shell Programming and Scripting

Compare values of hashes of hash for n number of hash in perl without sorting.

Hi, I have an hashes of hash, where hash is dynamic, it can be n number of hash. i need to compare data_count values of all . my %result ( $abc => { 'data_count' => '10', 'ID' => 'ABC122', } $def => { 'data_count' => '20', 'ID' => 'defASe', ... (1 Reply)
Discussion started by: asak
1 Replies

8. Shell Programming and Scripting

Perl: Printing null hash values as a " "?

I'm filling in a table of values for grades. I decided to go with reading into a hash from the files but I'm coming up with an error when printing a value that does not exist. I need to know if I can on-the-fly print a space (" ") or blank in place of the grade. Here's what the output should... (2 Replies)
Discussion started by: D2K
2 Replies

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

10. Shell Programming and Scripting

Perl giving unexpected md5 hash values

I am trying to speed up creating a line by line hash file from a huge file using Perl. Here is my current (working but too slow) Bash code: (while read line; do hash=$(echo -n $line | md5sum); echo ${hash:0:32}; done)And here is my Perl code: perl -MDigest::MD5 -le 'foreach $line ( <STDIN> )... (3 Replies)
Discussion started by: Michael Stora
3 Replies
Regexp::RegGrp(3pm)					User Contributed Perl Documentation				       Regexp::RegGrp(3pm)

NAME
Regexp::RegGrp - Groups a regular expressions collection VERSION
Version 1.002 DESCRIPTION
Groups regular expressions to one regular expression SYNOPSIS
use Regexp::RegGrp; my $reggrp = Regexp::RegGrp->new( { reggrp => [ { regexp => '%name%', replacement => 'John Doe', modifier => $modifier }, { regexp => '%company%', replacement => 'ACME', modifier => $modifier } ], restore_pattern => $restore_pattern } ); $reggrp->exec( $scalar ); To return a scalar without changing the input simply use (e.g. example 2): my $ret = $reggrp->exec( $scalar ); The first argument must be a hashref. The keys are: reggrp (required) Arrayref of hashrefs. The keys of each hashref are: regexp (required) A regular expression replacement (optional) Scalar or sub. A replacement for the regular expression match. If not set, nothing will be replaced except "store" is set. In this case the match is replaced by something like sprintf("x01%dx01", $idx) where $idx is the index of the stored element in the store_data arrayref. If "store" is set the default is: sub { return sprintf( "x01%dx01", $_[0]->{store_index} ); } If a custom restore_pattern is passed to to constructor you MUST also define a replacement. Otherwise it is undefined. If you define a subroutine as replacement an hashref is passed to this subroutine. This hashref has four keys: match Scalar. The match of the regular expression. submatches Arrayref of submatches. store_index The next index. You need this if you want to create a placeholder and store the replacement in the $self->{store_data} arrayref. opts Hashref of custom options. modifier (optional) Scalar. The default is 'sm'. store (optional) Scalar or sub. If you define a subroutine an hashref is passed to this subroutine. This hashref has three keys: match Scalar. The match of the regular expression. submatches Arrayref of submatches. opts Hashref of custom options. A replacement for the regular expression match. It will not replace the match directly. The replacement will be stored in the $self->{store_data} arrayref. The placeholders in the text can easily be rereplaced with the restore_stored method later. restore_pattern (optional) Scalar or Regexp object. The default restore pattern is qr~x01(d+)x01~ This means, if you use the restore_stored method it is looking for x010x01, x011x01, ... and replaces the matches with $self->{store_data}->[0], $self->{store_data}->[1], ... EXAMPLES
Example 1 Common usage. #!/usr/bin/perl use strict; use warnings; use Regexp::RegGrp; my $reggrp = Regexp::RegGrp->new( { reggrp => [ { regexp => '%name%', replacement => 'John Doe' }, { regexp => '%company%', replacement => 'ACME' } ] } ); open( INFILE, 'unprocessed.txt' ); open( OUTFILE, '>processed.txt' ); my $txt = join( '', <INFILE> ); $reggrp->exec( $txt ); print OUTFILE $txt; close(INFILE); close(OUTFILE); Example 2 A scalar is requested by the context. The input will remain unchanged. #!/usr/bin/perl use strict; use warnings; use Regexp::RegGrp; my $reggrp = Regexp::RegGrp->new( { reggrp => [ { regexp => '%name%', replacement => 'John Doe' }, { regexp => '%company%', replacement => 'ACME' } ] } ); open( INFILE, 'unprocessed.txt' ); open( OUTFILE, '>processed.txt' ); my $unprocessed = join( '', <INFILE> ); my $processed = $reggrp->exec( $unprocessed ); print OUTFILE $processed; close(INFILE); close(OUTFILE); AUTHOR
Merten Falk, "<nevesenin at cpan.org>" BUGS
Please report any bugs or feature requests through the web interface at http://github.com/nevesenin/regexp-reggrp-perl/issues <http://github.com/nevesenin/regexp-reggrp-perl/issues>. SUPPORT
You can find documentation for this module with the perldoc command. perldoc Regexp::RegGrp COPYRIGHT &; LICENSE Copyright 2010, 2011 Merten Falk, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.14.2 2012-02-18 Regexp::RegGrp(3pm)
All times are GMT -4. The time now is 07:06 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy