For one virutal includes just run the cgi-script and print the output so you can't specify a sub (well you could with some params, but that could get convulted). Secondly virtual includes are more for html files that don't have execute permission already, and are nice for including html templates (like a header file) for example, and will proably just cause a syntax error in a cgi script (will when testing over the command line at least). Require just includes the perl-script in a perl script so you could call the subs normally like they were in the same file.
You should look at Simple Module Tutorial for an even better way to include separate sub routines in multiple perl-scripts. Oh, Welcome to Perlmonks too :).