How do I sort an array numerically after the second column?
My values are integers like 1, 2, 3, 4... and they are not unique, so I can't just reverse my hash and sort by keys.
I wanna sort my file/array so that I get the lines with the highest value in the top - that is descending.
This is the part of my code that causes problems:
When I try running this I get this warning:
Can't use string ("D25304") as an ARRAY ref while "strict refs" in use at ./program line 66, <ACCIN> line 9861.
D25304 is one of the keys.
Any ideas to how to solve this problem or what is wrong with my code?
I have a perl script with an array of clients.
@arr = ("The ABC Corp", "AA Corp.", "BB Corp");
If I run
@a = sort (@arr);
I will get
@a = ("AA Corp", "BB Corp", "The ABC Corp");
but I want
@a = ("AA Corp, "The ABC Corp", "BB Corp");
How do I sort array without changing... (2 Replies)
Hi,
This is my input file:
ali 5 usa abc
abu 4 uk bca
alan 6 brazil bac
pinky 10 utah sdc
My desired output:
pinky 10 utah sdc
alan 6 brazil bac
ali 5 usa abc
abu 4 uk bca
Based on the column two, I want to do the descending order and print out other related column at the... (3 Replies)
Hi Everyone,
Any simple code can simplify the code below, please advice. Thanks
# cat 2.pl
#!/usr/bin/perl
use warnings;
use strict;
my @aaaaa = <DATA>;
my @uids;
foreach (@aaaaa) {
my @ccccc = split (",", $_);
push @uids, $ccccc;... (3 Replies)
Hi Everyone,
#!/usr/bin/perl
use strict;
use warnings;
my @test=("a;b;qqq;c;d","a;b;ggg;c;d","a;b;qqq;c;d");
would like to split the @test array into two array:
@test1=(("a;b;qqq;c;d","a;b;qqq;c;d"); and @test2=("a;b;ggg;c;d");
means search for 3rd filed.
Thanks
find the... (0 Replies)
Hi,
My developer is on vacation and I am not sure if there is something which is easier for this.
I have an array of strings. Each string in the array has "%" characters in it. I have to get the string(s) which have the least number of "%" in them.
I know how I can get occurrences :
... (7 Replies)
Hi everyone
I have one question about using array in perl. let say I have several log file in one folder.. example
test1.log
test2.log
test3.log
and the list goes on..
how to make an array for this file? It suppose to detect log file in the current directory and all the log file will... (3 Replies)
I have an array and two variables as below,
I need to check if $datevar is present in $filename.
If so, i need to replace $filename with the values in the array.
I need the output inside an ARRAY
How can this be done.
Any help will be appreciated. Thanks in advance. (2 Replies)
Hello Guys
I want to sort a flat file by the third column (numeric ) and store it in some other name
I/P
9924873|20111114|00000000000013013|130|13|10/15/2010 12:36:22|W860944|N|00
9924873|20111114|00000000000013009|130|09|10/15/2010 12:36:22|W860944|N|00... (12 Replies)
How to sort the following output based on lowest to highest BE?
The following sort does not work.
$ sort -t. -k1,1n -k2,2n bfd.txt
BE31.116 0s 0s DOWN DAMP
BE31.116 0s 0s DOWN DAMP
BE31.117 0s 0s ... (7 Replies)
Discussion started by: sand1234
7 Replies
LEARN ABOUT DEBIAN
xml::filter::sort::buffermgr
XML::Filter::Sort::BufferMgr(3pm) User Contributed Perl Documentation XML::Filter::Sort::BufferMgr(3pm)NAME
XML::Filter::Sort::BufferMgr - Implementation class used by XML::Filter::Sort
DESCRIPTION
The documentation is targetted at developers wishing to extend or replace this class. For user documentation, see XML::Filter::Sort.
Two classes are used to implement buffering records and spooling them back out in sorted order as SAX events. One instance of the
XML::Filter::Sort::Buffer class is used to buffer each record and one or more instances of the XML::Filter::Sort::BufferMgr class are used
to manage the buffers.
API METHODS
The API of this module as used by XML::Filter::Sort::Buffer consists of the following sequence of method calls:
1. When the first 'record' in a sequence is encountered, XML::Filter::Sort creates a XML::Filter::Sort::BufferMgr object using the "new()"
method.
2. XML::Filter::Sort calls the buffer manager's "new_buffer()" method to get a XML::Filter::Sort::Buffer object and all SAX events are
directed to this object until the end of the record is encountered. The following events are supported by the current buffer
implementation:
start_element()
characters()
comment()
processing_instruction()
end_element()
3. When the end of the record is detected, XML::Filter::Sort calls the buffer manager's "close_buffer()" method, which in turn calls the
buffer's "close()" method. The "close()" method returns a list of values for the sort keys and the buffer manager uses these to store
the buffer for later recall. Subsequent records are handled as per step 2.
4. When the last record has been buffered, XML::Filter::Sort calls the buffer manager's "to_sax()" method. The buffer manager retrieves
each of the buffers in sorted order and calls the buffer's "to_sax()" method.
Each buffer attempts to match the sort key paths as SAX events are received. Once a value has been found for a given key, that same path
match is not attempted against subsequent events. For efficiency, the code to match each key is compiled into a closure. For even more
efficiency, this compilation is done once when the XML::Filter::Sort object is created. The "compile_matches()" method in the buffer
manager class calls the "compile_matches()" method in the buffer class to achieve this.
DATA STRUCTURES
In the current implementation, the XML::Filter::Sort::BufferMgr class simply uses a hash to store the buffer objects. If only one sort key
was defined, only a single hash is required. The values in the hash are arrayrefs containing the list of buffers for records with
identical keys.
If two or more sort keys are defined, the hash values will be XML::Filter::Sort::BufferMgr objects which in turn will contain the buffers.
The following illustration may clarify the relationship (BM=buffer manager, B=buffer):
BM
+----------------+---------------+
| |
BM BM
+-----+--------+ +-----+----------+
| | | |
BM BM BM BM
+-----+----+ +----+------+ +----+----+ +------+------+
| | | | | | | | | | | |
[B,B,B] [B] [B,B] [B] [B,B] [B,B,B] [B] [B,B] [B] [B,B] [B,B,B] [B,B]
This layered storage structure is transparent to the XML::Filter::Sort object which instantiates and interacts with only one buffer manager
(the one at the top of the tree).
COPYRIGHT
Copyright 2002 Grant McLean <grantm@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.12.4 2002-06-14 XML::Filter::Sort::BufferMgr(3pm)