in reply to ADSI groups users

#!/usr/bin/perl -- use 5.010000; use strict; use warnings; use autodie; use Data::Dumper; Main(@ARGV); exit(0); sub Main { my $sample = join "\n", qw[ 0 a b c 1 d e f 666 lucy damian larry +]; open my $inMemory, '<', \$sample ; my $HoA = ReadADSI( $inMemory); close $inMemory; print Dumper($HoA); } sub ReadADSI { my ($fh) = @_; my %HoA; my $Group = 0; while (<$fh>) { chomp; given ($_) { when (/^\d+$/) { $Group = $_; $HoA{$Group} = []; } default { push @{ $HoA{$Group} }, $_; } } ## end given } ## end while (<$fh>) return \%HoA; } ## end sub ReadADSI __END__ $VAR1 = { '1' => [ 'd', 'e', 'f' ], '0' => [ 'a', 'b', 'c' ], '666' => [ 'lucy', 'damian', 'larry' ] };