#!/usr/bin/env perl -w use strict; use Data::Dumper; use Time::HiRes qw( gettimeofday ); use Getopt::Long qw( :config bundling ); use Maasha::Biopieces; # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< my ( $script, $t0, $t1, %options, $in, $out, $record, @vals, $i ); $t0 = Time::HiRes::gettimeofday(); $script = ( split "/", $0 )[ -1 ]; Maasha::Biopieces::log_biopiece(); GetOptions( \%options, 'key|k=s', 'keys|K=s', 'delimit|d=s', 'stream_in|I=s', 'stream_out|O=s', 'verbose|v', 'help|?' ); $options{ "keys" } = [ split ",", $options{ "keys" } ] if defined $options{ "keys" }; $options{ "delimit" } = '_' if not defined $options{ "delimit" }; $in = Maasha::Biopieces::read_stream( $options{ "stream_in" } ); $out = Maasha::Biopieces::write_stream( $options{ "stream_out" } ); while ( $record = Maasha::Biopieces::get_record( $in ) ) { if ( exists $options{ 'key' } and exists $record->{ $options{ 'key' } } ) { @vals = split /$options{ 'delimit' }/, $record->{ $options{ 'key' } }; for ( $i = 0; $i < @vals; $i++ ) { if ( defined $options{ "keys" } and defined $options{ "keys" }->[ $i ] ) { $record->{ $options{ "keys" }->[ $i ] } = $vals[ $i ]; } else { $record->{ $options{ 'key' } . "_$i" } = $vals[ $i ]; } } } Maasha::Biopieces::put_record( $record, $out ); } $t1 = Time::HiRes::gettimeofday(); print STDERR "Program: $script" . ( " " x ( 25 - length( $script ) ) ) . sprintf( "Run time: %.4f\n", ( $t1 - $t0 ) ) if $options{ 'verbose' }; # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< __END__