in reply to Can I do this?

Looks to me that what you're trying to do is this:
if( ( ${"MetaTag_$j"} !~ /description=/gi) && ( ${"MetaTag_$j"} =~ /posted=/gi )) { ... }
Now the honest answer, is yes, you can use symbolic references, but you really really really don't want to.

Now how to avoid it, depends lots on how the $MetaTag_* variables are being generated. Are they coming in with CGI? Perhaps you could use an array?

my @MetaTags = (.....); foreach my $tag (@MetaTags) { if(($tag !~ /description/gi) && $tag =~ /posted=/gi)) { print qq{<font size=-1 color="#000000" face=arial,sans-serif>$ +Summary<br></font>}; } }
Note also that I use !~ not !=~. !=~ will not work. !~ says this string does not match this pattern. =~ says this strings will match this pattern.

I use qq{...} instead of a here document because I feel that they look nicer.

For reasons why you don't want to use symbolic references look no further than that search button up the top. Really, there are way too many good posts on why for me to repeat them. Look here for an interesting start.