in reply to dereference array

@$edits tries to use a variable $edits as an arrayref - i.e. it's unrelated to the @edits variable you've defined. Thus it complains about $edits being undeclared. (That's what the slightly obscure "requires explicit package name" error means.)

@edits is an array; each item in that array is a reference to another array with only one item, which is a formatted date string.

You can access these strings like this:

print $edits[0][0], "\n"; print $edits[1][0], "\n"; # etc

You could print them pipe-delimited like this:

print join('|', map $_->[0], @edits), "\n";

Or you could define @edits more usefully:

my @edits = map $_->[0], @{ $timestamps{$page} } ; print Dumper @edits; print join('|', @edits), "\n";
use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name