This bit is weird and suggests you don't know how lexical variables work:
my $transseqchk->{transchk}=
And when you combine it with this, it suggests you don't fully understand the difference between hashes and hashrefs:
my %transseqchk;
To answer the question in the title, strict refs is triggered when you try to treat a non-reference (such as a string) as a reference.
perl -E'use strict; my $x = "foo"; $$x'
perl -E'use strict; my $x = "foo"; @$x'
perl -E'use strict; my $x = "foo"; %$x'
perl -E'use strict; my $x = "foo"; &$x'
perl -E'use strict; my $x = "foo"; $x->[0]'
perl -E'use strict; my $x = "foo"; $x->{bar}'
perl -E'use strict; my $x = "foo"; $x->()'