Arlert Ответов: 3

Преобразование Perl в C++ или C#


Привет и с Новым годом.
Есть ли где-нибудь perl script converter для других языков, таких как c++ или c#?
Если да, то не могли бы вы дать мне ссылку на него, или вы можете написать этот код:
foreach $pair (split('&', $form)) 
   {
   if ($pair =~ /(.*)=(.*)/) 
     {  
      ($key,$value) = ($1,$2);    
      $value =~ s/\+/ /g; 
     $value =~ s/%(..)/pack('c',hex($1))/eg;
	  $value =~ s/%0D%0A/ /eg;
      $inputs{$key} = $value;   
     }
  }	 

в c++ или c#?

0x01AA

Я думаю, что этот небольшой фрагмент кода-хорошее упражнение, чтобы перевести его самостоятельно :-)

0x01AA

Я могу чувствовать себя с вами после более близкого взгляда на жемчужина Perl-код.

Afzaal Ahmad Zeeshan

Это язык Perl, на всякий случай, чтобы исправить вашу опечатку ;-)

0x01AA

Спасибо :)
Бруно

Sergey Alexandrovich Kryukov

Это контрпродуктивный подход. Предположим, кто-то "конвертирует" его (белый аналогичный код, на самом деле) в C++ или C#, и что теперь? Вы все еще не знаете этих языков и технологий (если бы вы знали их, вы бы сделали эту работу самостоятельно). Итак, что бы вы сделали с этим новым кодом? Пожалуйста, поймите: никто не любит тратить свое время на что-то бесполезное.
—СА

Afzaal Ahmad Zeeshan

Мало того, это также похоже на какое-то домашнее задание или задание.

Arlert

мы не учим в школе c#, c++ или perl. только Паскаль, только хардкор.
у нас есть домашнее задание на каникулы, чтобы преобразовать числа в двоичные, если вам интересно.
и не стоит поливать тут никого говном, ребятки

Sergey Alexandrovich Kryukov

Я не позволял вам обращаться ко мне с плохими словами и в таком стиле. Не пытайтесь скрыть свою грубость за русским языком. Это оскорбительно не для меня, а для великой русской культуры.
Никто не пытался сказать тебе что-то плохое. Он не только вежливо критикует вас, но и должен дать вам ключ к более продуктивному подходу. (Да, я читал о вашей мотивации, спасибо за объяснения.) Пожалуйста, пообещай, что я больше не услышу от тебя грубых слов; тогда мы могли бы продолжить.
Спасибо.
—СА

BillWoodruff

Я думаю, что если вы потратите время на запуск скрипта с различными подходящими входными данными, а затем изучите его выходные данные (или побочные эффекты?), а затем опубликуете прямое описание того, что делает скрипт, и начнете реализовывать это в C#, вы найдете здесь людей, готовых вам помочь.

3 Ответов

Рейтинг:
2

bling

Ваша программа на языке C или C# может вызывать оболочку perl как внешнюю команду.

Вот пример C#.

https://social.msdn.microsoft.com/Forums/vstudio/en-US/ea9455e1-b254-49e1-99df-41718ea80b5b/how-to-run-perl-scripts-in-c?forum=csharpgeneral[^]

Ваша программа на языке Си может напрямую связываться с интерпретатором Perl.

http://perldoc.perl.org/perlembed.html[^]


Рейтинг:
2

Andreas Gieriet

Это имеет смысл только в качестве изолированного упражнения, чтобы отважиться на новую территорию.
Если исходный язык (в данном случае perl) слишком плотный, сначала переведите его в какой-нибудь придуманный псевдокод. Назовите каждую операцию именем функции (например, замените все значения шаблона X в переменной Y текстом Z и назначьте его обратно переменной Y и т. д.).
При этом исходный код понимается. Теперь вы можете попытаться найти соответствующие функции на целевом языке. Переведи его оттуда...
Овации
Энди


Рейтинг:
1

OriginalGriff

Это не совсем так работает.
Мы не делаем за вас вашу работу, ни домашнюю работу, ни оплачиваемую работу.
Если вы хотите, чтобы кто - то написал ваш код, вы должны заплатить- я предлагаю вам пойти в Freelancer.com и спросите там.

Но знайте: вы получаете то, за что платите. Плати копейки, получай обезьян.

Я предполагаю, что вы не писали код perl и не имеете ни малейшего представления о том, как он работает (и, возможно, не имеете ни малейшего представления о том, как работает perl), поэтому я бы начал с рассмотрения того, что должен делать код, и разработки того, как реализовать это в C# или C++. Перевод вслепую между языками (за исключением VB и C#, которые в значительной степени взаимозаменяемы) обычно не является хорошим подходом: то, что хорошо работает на одном языке, очень редко является оптимальным решением на другом. Просто посмотрите на то, что работает в родном C++ и как это должно быть сделано в C#, и вы получите идею - и у них есть огромное количество общего синтаксиса!