<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FDevelopment_Class%2FPerl</id>
		<title>Java/Development Class/Perl - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FDevelopment_Class%2FPerl"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Development_Class/Perl&amp;action=history"/>
		<updated>2026-04-22T17:09:10Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Development_Class/Perl&amp;diff=8395&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Development_Class/Perl&amp;diff=8395&amp;oldid=prev"/>
				<updated>2010-06-01T07:01:10Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 07:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Development_Class/Perl&amp;diff=8394&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Development_Class/Perl&amp;diff=8394&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Java Class that calls a Perl function ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/***************************************************************&lt;br /&gt;
 Download the jar for org.perl.inline.java first&lt;br /&gt;
****************************************************************/       &lt;br /&gt;
       &lt;br /&gt;
       &lt;br /&gt;
//Perl file: StringDistance.pl&lt;br /&gt;
/*&lt;br /&gt;
#! /usr/bin/perl&lt;br /&gt;
# Perl main program acting as a stub for callbacks from Java&lt;br /&gt;
use strict;&lt;br /&gt;
use warnings;&lt;br /&gt;
# all modules called from either Perl or from Java must go here:&lt;br /&gt;
use Text::Levenshtein qw();&lt;br /&gt;
use Inline &amp;quot;Java&amp;quot;  =&amp;gt; &amp;quot;STUDY&amp;quot;,            # glean interface from Java class file&lt;br /&gt;
           &amp;quot;AUTOSTUDY&amp;quot; =&amp;gt; 1,              # glean more interfaces, too, just in case&lt;br /&gt;
           &amp;quot;STUDY&amp;quot; =&amp;gt; [&amp;quot;StringDistance&amp;quot;], # name of our main Java class&lt;br /&gt;
           &amp;quot;CLASSPATH&amp;quot; =&amp;gt; &amp;quot;.&amp;quot;,            # needed in order to find main Java class&lt;br /&gt;
           ;&lt;br /&gt;
my $sd = StringDistance-&amp;gt;new(\@ARGV);     # construct instance of main Java class&lt;br /&gt;
$sd-&amp;gt;show();                              # call routine to show it&lt;br /&gt;
$sd-&amp;gt;StartCallbackLoop();                 # prepare to listen for threaded callbacks&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
/** Example of a Java Class that calls a Perl function.&lt;br /&gt;
 * &amp;lt;br/&amp;gt;&lt;br /&gt;
 * Does not run on its own -- for usage, see StringDistance.pl!&lt;br /&gt;
 */&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.event.*;&lt;br /&gt;
import org.perl.inline.java.*;&lt;br /&gt;
// requires classpath to include this file; usually something like&lt;br /&gt;
// .;&amp;lt;perldir&amp;gt;/site/lib/Inline/Java/InlineJavaServer.jar&lt;br /&gt;
/** The test class. */&lt;br /&gt;
public class StringDistance extends InlineJavaPerlCaller {&lt;br /&gt;
  JFrame frame;           // visual container&lt;br /&gt;
  JTextField tf[], dist;  // text input fields, result output field&lt;br /&gt;
  JButton go, exit;       // action buttons&lt;br /&gt;
  /* The constructor with possibly 2 initial strings */&lt;br /&gt;
  public StringDistance(String[] strs) throws InlineJavaException {&lt;br /&gt;
    frame = new JFrame(&amp;quot;StringDistance&amp;quot;);&lt;br /&gt;
    Container p = frame.getContentPane();&lt;br /&gt;
    p.setLayout(new GridLayout(0,2));&lt;br /&gt;
    // The input fields, including labels:&lt;br /&gt;
    tf = new JTextField[2];&lt;br /&gt;
    for (int i=0; i&amp;lt;2; i++) {&lt;br /&gt;
      p.add(new JLabel(&amp;quot;String &amp;quot; + i + &amp;quot;:&amp;quot;));&lt;br /&gt;
      tf[i] = new JTextField(20);&lt;br /&gt;
      if ((strs != null) &amp;amp;&amp;amp; (i &amp;lt; strs.length)) tf[i].setText(strs[i]);&lt;br /&gt;
      p.add(tf[i]);&lt;br /&gt;
    }&lt;br /&gt;
    // The output field, including label:&lt;br /&gt;
    p.add(new JLabel(&amp;quot;Distance:&amp;quot;));&lt;br /&gt;
    dist = new JTextField(5);&lt;br /&gt;
    dist.setEditable(false);&lt;br /&gt;
    p.add(dist);&lt;br /&gt;
    // The main action button:&lt;br /&gt;
    go = new JButton(&amp;quot;Compute distance&amp;quot;);&lt;br /&gt;
    go.addActionListener(new ActionListener() {&lt;br /&gt;
               public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
                 dist.setText(Integer.toString(match(tf[0].getText(),&lt;br /&gt;
                                                     tf[1].getText())));&lt;br /&gt;
               }&lt;br /&gt;
             }&lt;br /&gt;
           );&lt;br /&gt;
    p.add(go);&lt;br /&gt;
    // To finish off:&lt;br /&gt;
    exit = new JButton(&amp;quot;Exit&amp;quot;);&lt;br /&gt;
    exit.addActionListener(new ActionListener() {&lt;br /&gt;
               public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
                 frame.dispose(); System.exit(0);&lt;br /&gt;
               }&lt;br /&gt;
             }&lt;br /&gt;
           );&lt;br /&gt;
    p.add(exit);&lt;br /&gt;
    if ((strs != null) &amp;amp;&amp;amp; (strs.length &amp;gt; 1))&lt;br /&gt;
      dist.setText(Integer.toString(match(tf[0].getText(),&lt;br /&gt;
                   tf[1].getText())));&lt;br /&gt;
    frame.pack();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Alternative constructors:&lt;br /&gt;
  public StringDistance(String s0, String s1)&lt;br /&gt;
      throws InlineJavaException {&lt;br /&gt;
    this(new String[] { s0, s1 });&lt;br /&gt;
  }&lt;br /&gt;
  public StringDistance(String s0) throws InlineJavaException {&lt;br /&gt;
    this(new String[] { s0 });&lt;br /&gt;
  }&lt;br /&gt;
  public StringDistance() throws InlineJavaException {&lt;br /&gt;
    this((String[])null);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /** This shows everything */&lt;br /&gt;
  public void show() { frame.setVisible(true); }&lt;br /&gt;
&lt;br /&gt;
  /* Optionally for pre-filling the input fields. */&lt;br /&gt;
  public void setText(int fieldno, String str) {&lt;br /&gt;
    tf[fieldno].setText(str);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /** The central interface function to Perl. */&lt;br /&gt;
  public int match(String s0, String s1) {&lt;br /&gt;
    try {&lt;br /&gt;
      String str = (String)CallPerl(&amp;quot;Text::Levenshtein&amp;quot;, &amp;quot;distance&amp;quot;,&lt;br /&gt;
                                    new Object [] {s0, s1});&lt;br /&gt;
      return Integer.parseInt(str);&lt;br /&gt;
    } catch (InlineJavaPerlException e) {&lt;br /&gt;
      System.err.println(&amp;quot;Inline Java Perl Exception: &amp;quot; + e);&lt;br /&gt;
    } catch (InlineJavaException e) {&lt;br /&gt;
      System.err.println(&amp;quot;Inline Java Exception: &amp;quot; + e);&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>