#!/usr/bin/perl
#
# eg1: map and grep examples
#

use strict;
use warnings;

my @orig       = (1,2,3,4);					# 1,2,3,4
my @double     = map { $_ * 2 } @orig;				# 2,4,6,8
my @twicelong  = map { $_, $_ * 2 } @orig;			# 1,2,2,4,3,6,4,8
my %doublehash = map { $_ => $_ * 2 } @orig;			# 1=>2, 2=>4, 3=>6, 4=>8

my @odd  = grep { $_ % 2 == 1 } @orig; my $odd=join(',',@odd);	# (1,3)
my @even = grep { $_ % 2 == 0 } @orig; my $even=join(',',@even);# (2,4)
print "odd: $odd, even: $even\n";

my @sq   = grep { my $r=int(sqrt($_)); $r*$r == $_ } @orig;	# (1,4)
my $sq = join(',',@sq);
print "sq: $sq\n";
