Function: peek

Store top element of array in variable, but do not remove it

USAGE: peek arrayname var:peek

peek()
{     
  local arrayname=${1:?Array name required} val varname=${2:-peek}
  eval "[ ${#arrayname[@]} -gt 0 ] || return 1"
  eval "val=\${${arrayname}[0]}"
  printf -v "$varname" "%s" "$val"
}