sub drawPolygon { glBegin(GL_POLYGON); ## glColor3f( @{ shift() }[ 0, 1, 2 ] ); ## Works glColor3f( @{ shift() } ); ## Fails glVertex3f( @$_ ) for @_; glEnd(); } #### sub drawPolygon { glBegin(GL_POLYGON); my $arg = shift; pop(@$arg); ## glColor3f( @{ shift() }[ 0, 1, 2 ] ); ## Works glColor3f( @{ $arg } ); glVertex3f( @$_ ) for @_; glEnd(); }