Perl: sort string alphabetically, or remove dupe chars?

Parv parv at pair.com
Wed Apr 26 03:05:26 UTC 2006


in message <ef10de9a0604251754r3292719dqc29d96095a9f0752 at mail.gmail.com>,
wrote Nikolas Britton thusly...
>
> On 4/25/06, Nikolas Britton <nikolas.britton at gmail.com> wrote:
> > basically what I want to do:
...
> > my $wordlist = "letter";
> > ## some whizbang regex that removes dupe chars
> > ## from words like "alphabetically" --> "alphbeticy".
> > print "$wordlist\n";
...
> This works... but it's clunky:
> 
> my $string = "letter";
> my @chars = split("", $string);
> $string = ""; @chars = sort (@chars);
> foreach (@chars) {
> $string .= $_;
> }
> $string =~ tr///cs;
> print "$string";

You could combine some of the steps ...

  my $string = 'letter';
  $string = join '' , sort split '', $string;
  $string =~ tr///cs;
  print $string;


... another but rather clunky version is ...

  my $string = 'letter';
  {
    my %string;
    @string{ split '' , $string } = ();
    $string = join '' , sort keys %string;
  }
  print $string;


  - Parv

-- 



More information about the freebsd-questions mailing list