#!/usr/bin/perl use strict; use warnings; use Data::Dumper; sub qwx { my ( $text ) = @_; $text =~ s/\s*[#].*$//mg; return split ' ', $text; } my @items = qwx" this is # possibly a # commented list # with stand-alone comments # and empty lines " ; print Dumper \@items; __END__ $VAR1 = [ 'this', 'is', 'a', 'list' ];