Sponsored Content
Top Forums Shell Programming and Scripting Unable to get the correct sort order in perl. Post 302525157 by atul9806 on Thursday 26th of May 2011 02:00:08 AM
Old 05-26-2011
you can use this

Code:
%hash;
@arr1 = qw(Dealnum AdminStatus adminReason effFrom effTo);
@arr2 = qw(121212121 YES  1992-06-19T05:14:27 );
@hash{@arr1}=@arr2;
foreach(@arr1){
print "$_ ---- $hash{$_}\n";
}


o/p

Code:
Dealnum ---- 121212121
AdminStatus ---- YES
adminReason ---- 1992-06-19T05:14:27
effFrom ----
effTo ----


you have to do a Null string checking for 'NULL' print

---------- Post updated at 11:30 AM ---------- Previous update was at 11:14 AM ----------

Use this with NULL print
Code:
%hash;
@arr1 = qw(Dealnum AdminStatus adminReason effFrom effTo);
@arr2 = qw(121212121 YES  1992-06-19T05:14:27 );
@hash{@arr1}=@arr2;
foreach(@arr1){
 if ( !defined $hash{$_} || $hash{$_} eq "" )
 {
print "$_ ---- NULL\n";
}
else
{
print "$_ ---- $hash{$_}\n";
}
}

o/p

Code:
Dealnum ---- 121212121
AdminStatus ---- YES
adminReason ---- 1992-06-19T05:14:27
effFrom ---- NULL
effTo ---- NULL


Last edited by pludi; 05-26-2011 at 03:39 AM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Sort / ascending order

What's the command to sort a file in ascending order and redirect the output to another file? Thanks!!!!!! (1 Reply)
Discussion started by: gyik
1 Replies

2. Shell Programming and Scripting

SORT order in Unix

I am converting mainframes JCL to be used in shell on a one to one basis... when i use the sort command unix does ascii sort as a result which numbers are first followed by charecters in the Ascending sort ... but themainframes uses the EBCDIC as result gives the charecters followed by numbers in... (5 Replies)
Discussion started by: bourne
5 Replies

3. Shell Programming and Scripting

Order text display not correct.

My shell script below for import data to Oracle it run okay. but the text display not correct follow order command executed. =========================Shell Script code================= #!/bin/sh #directory = ${1-'pwd'} #run import data with SQLLoader runSQLLoader() { ... (2 Replies)
Discussion started by: raccsdl
2 Replies

4. UNIX for Dummies Questions & Answers

sort -reverse order

I need to sort the particular column only in reverse order how i can give it.. if i give the -r option the whole file is getting sorted in reverse order. 1st 2nd col 3rd C col 4th col 5th col ------------------------------------------- C... (7 Replies)
Discussion started by: sivakumar.rj
7 Replies

5. Shell Programming and Scripting

Sort numeric order

Hi I am using this cat substitutionFeats.txt | gawk '{$0=gensub(/\t/,"blabla",1);print}' | gawk '{print length, $0}' | sort -n | sort -r and the "sort -n" command doesn't work as expected: it leads to a wrong ordering: 64 Adjustable cuffs 64 Abrasion- 64 Abrasion pas 647 Sanitized 647... (4 Replies)
Discussion started by: louisJ
4 Replies

6. Shell Programming and Scripting

Sort by specific order?

Hello all I was wondering if someone has an idea how to sort by a specific order, let's say by a specific alphabet containing only 4 letters like (d,s,a,p) instead of (a,b,c....z) ?? Cheers! (6 Replies)
Discussion started by: cabrao
6 Replies

7. Shell Programming and Scripting

How to print the output in correct order?

Hi, while using following awk commend I’m getting confused, The output is not like as the row present in input files, can anyone explain and tell me how to print in the order like in input. value=$(awk 'FNR>1 && NR==FNR{a=$4;next} a{sum+=$4} END {for(i in sum){printf i"\t"sum/2"@@";}}'... (5 Replies)
Discussion started by: Shenbaga.d
5 Replies

8. Shell Programming and Scripting

Not able to sort two fields and printf not displaying the correct values

Not able to sorting two fileds resolved printf issue 01-1000/9|JAN 01-0000/6|MAN 01-1010/2|JAN 01-1010/2|JAN 01-1010/2|JAN 01-1000/9|JAN 01-1000/9|JAN 01-1000/9|SAA 01-1000/9|SAA 01-0000/6|SAN 01-0000/6|SAN 1.sort -t'|' -k1,1n -k2,2 file (3 Replies)
Discussion started by: kalia4u
3 Replies

9. UNIX for Beginners Questions & Answers

Sort in chronological order

I am trying to sort a log file in chronological order to identify which ones did not process and still have an old (probably yesterday's) date. This is a sample of the file:flatf 010140 flatf Thu May 10 22:22:11 CST 2018 flats finished flatf 010142 flatf Thu May 10 22:31:25 CST 2018 flats... (4 Replies)
Discussion started by: wbport
4 Replies

10. Shell Programming and Scripting

How to sort list of directories in descending order in perl?

Hi, I have a problem . I have few directories like inpTDT_1, inpTDT_2, inpTDT_3 and so on inside HOME directory . In one of my perl script (which is in my HOME), the above directories like inpTDT_1, inpTDT_2, inpTDT_3 are sorting out in an order So I wanted to sort all the inpTDT_1, inpTDT_2,... (1 Reply)
Discussion started by: venkatesh
1 Replies
Tree::Simple::Visitor::FromNestedHash(3pm)		User Contributed Perl Documentation		Tree::Simple::Visitor::FromNestedHash(3pm)

NAME
Tree::Simple::Visitor::FromNestedHash - A Visitor for creating Tree::Simple objects from nested hash trees. SYNOPSIS
use Tree::Simple::Visitor::FromNestedHash; my $visitor = Tree::Simple::Visitor::FromNestedHash->new(); # given this nested hash tree my $hash_tree = { Root => { Child1 => { GrandChild1 => {}, GrandChild2 => {} }, Child2 => {} } }; # set the array tree we # are going to convert $visitor->setHashTree($hash_tree); $tree->accept($visitor); # this then creates the equivalent Tree::Simple object: # Tree::Simple->new("Root") # ->addChildren( # Tree::Simple->new("Child1") # ->addChildren( # Tree::Simple->new("GrandChild1"), # Tree::Simple->new("GrandChild2") # ), # Tree::Simple->new("Child2"), # ); DESCRIPTION
Given a tree constructed from nested hashs, this Visitor will create the equivalent Tree::Simple heirarchy. METHODS
new There are no arguments to the constructor the object will be in its default state. You can use the "setNodeFilter" methods to customize its behavior. setNodeFilter ($filter_function) This method accepts a CODE reference as its $filter_function argument and throws an exception if it is not a code reference. This code reference is used to filter the tree nodes as they are created, the $filter_function is passed the node value extracted from the hash prior to it being inserted into the tree being built. The $filter_function is expected to return the value desired for inclusion into the tree. setHashTree ($hash_tree) This method is used to set the $hash_tree that our Tree::Simple heirarchy will be constructed from. It must be in the following form: { Root => { Child1 => { GrandChild1 => {}, GrandChild2 => {} }, Child2 => {} } } Basically each key in the hash is considered a node, values are ignored unless it is a hash reference with at least one key in it, in which case it is interpreted as containing the children of the node created from the key. The tree is validated prior being accepted, if it fails validation an execption will be thrown. The rules are as follows; The hash tree must not be empty. It makes not sense to create a tree out of nothing, so it is assumed that this is a sign of something wrong. The hash tree must be a single rooted tree. The hash tree should have only one key in it's first level, if it has more than one, then it is not a single rooted tree. NOTE: Hash keys are sorted ascii-betically before being added to the tree, this results in a somewhat more predictable hierarchy. visit ($tree) This is the method that is used by Tree::Simple's "accept" method. It can also be used on its own, it requires the $tree argument to be a Tree::Simple object (or derived from a Tree::Simple object), and will throw and exception otherwise. BUGS
None that I am aware of. Of course, if you find a bug, let me know, and I will be sure to fix it. CODE COVERAGE
See the CODE COVERAGE section in Tree::Simple::VisitorFactory for more inforamtion. SEE ALSO
These Visitor classes are all subclasses of Tree::Simple::Visitor, which can be found in the Tree::Simple module, you should refer to that module for more information. AUTHOR
stevan little, <stevan@iinteractive.com> COPYRIGHT AND LICENSE
Copyright 2004, 2005 by Infinity Interactive, Inc. <http://www.iinteractive.com> This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.1 2005-07-14 Tree::Simple::Visitor::FromNestedHash(3pm)
All times are GMT -4. The time now is 06:51 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy