First of all you have a bug, you're excluding the possibility that the two factors both end in 0 for no apparent reason. If I elminate that and use standard golfing techniques (plus the mathematical fact that if $a or $_ is 10**$z then you can't possibly satisfy the fang condition) I get down to 126 by usual golf counting rules (less by yours, but the returns all matter!):
$z=pop()/2;for$a(1..10**$z){sub a{join"",sort
pop=~/./g}$,=$a*$_,a($a.$_)!=a$,or$z*2>length$,or
print"$, $a $_
"for$a..10**$z}
Note that $, is used rather than a more normal variable name because it lets me remove one space.
I'll give better than even odds that someone else can cut out another character still. (Assuming that the right someone else tries...)
Update: I realize now that you're looking for true vampire numbers and not vampire numbers. Golfing that I get 140 characters with:
$z=pop()/2;for$a(1..10**$z){sub a{join"",sort
pop=~/./g}$,=$a*$_,a($a.$_)!=a$,or$z*2>length$,or($a%10+$_%10)&&print"
+$, $a $_
"for$a..10**$z}
Update 2: I did a meaningless code rearrangement to make the longest line shorter.