#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $foo = 1; my $bar = 'baz'; my $baz = ''; my %foohash = ( $foo ? ( foo => $foo ) : (), bar => $bar, $baz ? ( baz => $baz ) : (), $ARGV[0] ? ( version => 'snmpv' . $ARGV[0] ) : () ); print Dumper(\%foohash); exit; __END__ Output: $VAR1 = { 'bar' => 'baz', 'foo' => 1 };