|
| Sort af array Fra : Morten Skriver |
Dato : 25-04-01 14:30 |
|
Hej,
Jeg har et array indeholdende tekst stringe af følgende format:
@a=("ab1.foo.bar","ab10.foo.bar","ab2.foo.bar");
Dette vil jeg gerne have sorteret sådan, at output'et set
således ud:
ab1.foo.bar, ab2.foo.bar, ab10.foo.bar
Hvordan kan dette gøres ?
/Morten
--
Morten Skriver
Email: morten@skriver.dk
| |
Christian Vandsø (25-04-2001)
| Kommentar Fra : Christian Vandsø |
Dato : 25-04-01 14:59 |
|
On 25 Apr 2001 13:29:48 GMT, morten@skriver.dk (Morten Skriver) wrote:
>Hej,
>
>Jeg har et array indeholdende tekst stringe af følgende format:
>
>@a=("ab1.foo.bar","ab10.foo.bar","ab2.foo.bar");
>
>Dette vil jeg gerne have sorteret sådan, at output'et set
>således ud:
>
>ab1.foo.bar, ab2.foo.bar, ab10.foo.bar
Kan sikkert golf'es lidt vha map, men en quick and dirty løsning er:
#!/usr/bin/perl -w
use strict;
my @string = ("ab1.foo.bar","ab10.foo.bar","ab2.foo.bar");
my %sorted;
foreach (@string) {
$sorted{$1}=$_ if (/\w\w(\d+)/);
}
my @keys = sort {$a<=>$b} keys %sorted;
foreach (@keys) {
print "$sorted{$_}\n";
}
/Christian
--
sub BROOTHAL::TIESCALAR{ bless \my $child =>"BOFH"};$_='5O1v3v5y9)1b7u2q4x1i0e3u2"3S9n5w7s6&7o7h8k1l6k3u3/';s/(.)(.)/pack('C',ord($2)-$1)/eg; tr/A-Za-z/N-ZA-Mn-za-m/;chop and pop or shift and die or tie my $shoe=>qq 'BROOTHAL';tr/A-Za-z/N-ZA-Mn-za-m/;print;
| |
Lars Balker Rasmusse~ (25-04-2001)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 25-04-01 15:00 |
|
morten@skriver.dk (Morten Skriver) writes:
> Jeg har et array indeholdende tekst stringe af følgende format:
>
> @a=("ab1.foo.bar","ab10.foo.bar","ab2.foo.bar");
>
> Dette vil jeg gerne have sorteret sådan, at output'et set
> således ud:
>
> ab1.foo.bar, ab2.foo.bar, ab10.foo.bar
>
> Hvordan kan dette gøres ?
Er de altid "ab" tal ".foo.bar"? For så er følgende nok.
@sorteret = map { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, /(\d+)/ ] } @a;
Hvis de kan være f.eks. "ab1.foo.bar", "ab10.foo.bar", "bc1.foo.bar":
@sorteret = map { $_->[0] }
sort { $a->[1] cmp $b->[1] || $a->[2] <=> $b->[2] }
map { [ $_, /(\D+)(\d+)/ ] } @a;
--
Lars Balker Rasmussen "Special is bad."
| |
Morten Skriver (25-04-2001)
| Kommentar Fra : Morten Skriver |
Dato : 25-04-01 15:02 |
|
On 25 Apr 2001 16:00:12 +0200, Lars Balker Rasmussen wrote:
>
> Er de altid "ab" tal ".foo.bar"? For så er følgende nok.
>
Nope, formatet er ukendt antal "bogstaver" tal ".foo.bar"
/Morten
--
Morten Skriver
Email: morten@skriver.dk
| |
Lars Balker Rasmusse~ (25-04-2001)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 25-04-01 15:08 |
|
morten@skriver.dk (Morten Skriver) writes:
> On 25 Apr 2001 16:00:12 +0200, Lars Balker Rasmussen wrote:
> >
> > Er de altid "ab" tal ".foo.bar"? For så er følgende nok.
>
> Nope, formatet er ukendt antal "bogstaver" tal ".foo.bar"
Så virker mit andet forslag. (Og Christians fejler på ukendt antal.)
--
Lars Balker Rasmussen "Special is bad."
| |
Morten Skriver (25-04-2001)
| Kommentar Fra : Morten Skriver |
Dato : 25-04-01 15:12 |
|
On 25 Apr 2001 16:07:37 +0200, Lars Balker Rasmussen wrote:
>>
>> Nope, formatet er ukendt antal "bogstaver" tal ".foo.bar"
>
> Så virker mit andet forslag. (Og Christians fejler på ukendt antal.)
jeps, takker for hjælpen
/Morten
--
Morten Skriver
Email: morten@skriver.dk
| |
Thorbjoern Ravn Ande~ (25-04-2001)
| Kommentar Fra : Thorbjoern Ravn Ande~ |
Dato : 25-04-01 16:23 |
|
| |
Lars Balker Rasmusse~ (25-04-2001)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 25-04-01 16:30 |
|
Thorbjoern Ravn Andersen <ravn@unixsnedkeren.dk> writes:
> On 25 Apr 2001, Lars Balker Rasmussen wrote:
> > Er de altid "ab" tal ".foo.bar"? For så er følgende nok.
> >
> > @sorteret = map { $_->[0] }
> > sort { $a->[1] <=> $b->[1] }
> > map { [ $_, /(\d+)/ ] } @a;
>
> Ok, Lars er gået i Randal-mode. Så leger jeg Tom:
>
> http://www.perl.com/CPAN/doc/FMTEYEWTK/sort.html
Efter seks år (som tiden dog flyver), vil jeg hævde at Schwartzian
Transform er blevet kanon...
--
Lars Balker Rasmussen "Special is bad."
| |
Thorbjoern Ravn Ande~ (25-04-2001)
| Kommentar Fra : Thorbjoern Ravn Ande~ |
Dato : 25-04-01 16:39 |
|
| |
Lars Balker Rasmusse~ (25-04-2001)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 25-04-01 16:48 |
|
Thorbjoern Ravn Andersen <ravn@unixsnedkeren.dk> writes:
> On 25 Apr 2001, Lars Balker Rasmussen wrote:
> > Efter seks år (som tiden dog flyver), vil jeg hævde at Schwartzian
> > Transform er blevet kanon...
>
> Det ændrer vel ikke på at den er svær at forstå første gang man ser den?
Det er da klart som Ramlösa :)
--
Lars Balker Rasmussen "Special is bad."
| |
|
|