http://qs321.pair.com?node_id=1077457


in reply to Create unique array --the hard way!

Perhaps this will be suitable (for your class exercise):

#!/usr/bin/env perl -l use strict; use warnings; my @initial = qw{q w e r t y q w e r t y}; print "Initial: @initial"; my $last = ''; my @unique = map { $last eq $_ ? () : ($last = $_) } sort @initial; print "Unique: @unique";

Output:

Initial: q w e r t y q w e r t y Unique: e q r t w y

Update (alternative solution): You could even skip the creation of the unsorted array (your @array_q3):

#!/usr/bin/env perl -l use strict; use warnings; my $last = ''; my @unique = map { $last eq $_ ? () : ($last = $_) } sort map { split +} <DATA>; print "Unique: @unique"; __DATA__ I am supposed to create a unique array I am not supposed to use hashes

Output:

Unique: I a am array create hashes not supposed to unique use

-- Ken