| 9. The Perl Server and stand-alone scripts
 
 
	So far the scripts have all been started from the menu structure within 
	menu. But there is another possibility and that is to run the scripts from 
	the command line, as a normal perl program.A D V E R T I S E M E N T
 When run this way the script 
	tries to connect to the Perl-Server, and if it fails it will launch gimp on 
	its own. If you plan to run several scripts this way, it is obviously much 
	faster to run the Perl-Server since launching gimp takes quite a bit of 
	time. The perl-server may be started from the Xtns menu.
 When a perl-fu script is run from the command line, the result is the 
	same as when it is run through the menus, except of the fact that it may be 
	run with the --output parameter in case it will save the result to 
	a file instead of displaying it within gimp. This is great for batch 
	creation of logos, etc.  The filename for the --output has some special magic that allows 
	to set some special image saving parameters, like interlace, quality factor, 
	etc. See the Gimp::Fu man page for details. Note that the normal rules about 
	image and file types are still valid, thus e.g. in order to save an image as 
	a gif file, it must be converted from RGB to an indexed script. Currently 
	this functionality must be included in each script, but it is possible that 
	a future version of Gimp::Fu, includes this conversion as an option.  Here are two invocations of the scripts declared above, but with output 
	written to a jpg file and a png file. As we said above, we can't save them 
	as gif as the scripts do not index the images.   
		
			| perl-gimp-from-shell |  
			|   1:  uni -o /tmp/uni.ppm -size 100 -color "#5050ff" 
  2:  basic-logo -font '-*-utopia-*-r-*-*-100-*-*-*-*-*-*-*'  
  3:      -o /tmp/bl.ppm -text "Perl rules"  |  
	
 Note that due to a bug in my version of Gimp/Perl I was not able to 
	output images in any format but in ppm and gif. Your milage may vary. 	Another importent use of this interface is that it enables running the perl 
	debugger on the perl-fu scripts.  Note: The image is saved to the directory where gimp was started 
	from and not to the directory in which the scripts were invoked, unless a 
	complete path is given!  
 9.1. A shell for gimp-perl
 
	When using the perl-server it is not necessary to use Gimp::Fu and 
	the register function. Instead a sub named on_net may be 
	declared, which points to a routine that will be called when gimp starts.
  	 For a simple but powerful example of the use of the Gimp without Fu, here 
	is a an interactive perl gimp shell that may be run from the command line:
	   
		
			| pg-shell |  
			|   1:  #!/usr/local/bin/perl 
  2:  ###################################################################### 
  3:  #  An interactive command line shell to gimp. 
  4:  ###################################################################### 
  5:  use Gimp ":auto"; 
  6:  use Term::ReadLine; 
  7:   
  8:  sub interact { 
  9:      $term = new Term::ReadLine("Gimp"); 
 10:      while( defined ($_ = $term->readline("Gimp> "))) { 
 11:          $res = eval($_) . "\n"; 
 12:          print("Error: $@"), next if $@; 
 13:          print "\n"; 
 14:          gimp_displays_flush(); 
 15:      } 
 16:  } 
 17:   
 18:  Gimp::on_net(\&interact); 
 19:   
 20:  exit main(); 
 21:    |  
	
 Here is an example of an interactive session with this shell:  
		
			| interact |  
			|   1:  Gimp> $img = gimp_image_new(100,100,RGB) 
  2:  Gimp> $drw = $img->layer_new(100,100,RGB_IMAGE, "bg", 100, NORMAL_MODE) 
  3:  Gimp> $img->add_layer($drw,-1) 
  4:  Gimp> $img->display_new 
  5:  Gimp> $drw->edit_clear 
  6:  Gimp> gimp_displays_flush()  |  
	
 
 
 10. End notes
 
	This tutorial has covered only a small part of the possibilities available 
	to a script writer. In particular the following issues available to 
	Gimp::Perl scripts have not been covered:
  	 
		The possibility of writing customized Gtk interfaces. Writing fullfledged plug-ins that manipulate the tile data through 
		the Perl Data Language (PDL) module.Using Perl::Gimp in a CGI environment. How to fill with gradients in a plugin How to do "free selections".  	 
 |